String deal(String s1, String s2)
{
if(s1 != null)
{
if(contact(s1.charAt(s1.length() - 1)) == 1)
{
s1 += s2;
return s1;
}
else
{
s1 = s1.substring(0, s1.length() - 1);
deal(s1, s2);
}
}
return s1;
}
int contact(char ch)
{
if(Character.isDigit(ch) || ch == *(* || ch == *)* || ch == *.*)
return 1;
if(ch == *-* || ch == *+*)
return 2;
return 0;
}
String str = deal("800", "*");
这样就返回的是800*
如果String str = deal("800-", "*");
返回的是800,不是800*
是不是意思就是返回的是第一次的返回值?
如果我想得到800*怎么修改,求帮忙!谢谢了
这个肯定不行,return在if 或else中,if外面没有会报错说没有返回值的
这一定会返回第一个的 ,我用另一个方法做了
请问另一个问题:String s = null时 输出s时为什么是null 不应该什么都没有吗
如果用String s = “” 那么“”+s的字符个数是多少啊
谢谢了
那个是可以的 我给你代码粘贴到Eclipse里测试了 只不过我没有给你完全代码 只是想让你把
String deal(String s1, String s2)
{
if(s1 != null)
{
if(contact(s1.charAt(s1.length() - 1)) == 1)
{
s1 += s2;
return s1;
}
else
{
s1 = s1.substring(0, s1.length() - 1);
deal(s1, s2); //这块改成String a = deal(s1, s2);
//if(a!=""||!a.equals("")){
//return a;
//}}
}
return s1;
}
你的第二个问题
String s = null; 你给他定义这书数组为空了 所以打印的时候就会打印出null(代表没有任何值)
""+s字符的个数是多少你可以自己测试一下
String s=null;
String ss = ""+s;
System.out.println(ss.length());//ss.length()代表ss这个字符串的长度
测试结果为4