我看到了如下代码段:
public class Practice
{
public static void main( String[] args )
{
String i = new String("I love you");
System.out.println(doSomething(i));
}
public static String doSomething( String s )
{
final String BLANK = " ";
String str = "";
String temp;
for ( int i = 0; i < s.length(); i++)
{
temp = s.substring(i, i + 1);
if (!(temp.equals(BLANK)))
{
str += temp;
}
}
return str;
}
}
我对这里的代码非常困惑。我相信每当for循环运行时,String中的一个字符将被提取出来。例如,当i = 0时,temp应为“I”,i = 1,“”,i = 2,“l”等。当temp =“”时,if语句指出空白将添加到String str。因此,每当运行for循环时,temp将相应地改变,因此除非其值为“”,否则不能存储该值。
输出是Iloveyou。
答案 0 :(得分:2)
问题在于:
if (!(temp.equals(BLANK)))
{
str += temp;
}
IF temp 不是(!表示不是) BLANK ,
然后执行:str += temp;