我再练习模拟Trim方法时写的代码
/*
模拟trim方法,去除字符串两端的空格
*/
class TrimTest
{
public static void main(String[] args)
{
String str = " asdasdcvj ";
System.out.println(str);
str =CopyTrim.copyTrim(str);
System.out.println(str);
}
}
class CopyTrim
{
public static String copyTrim(String str)
{
int start =0;
int end = str.length()-1;
String str1 = new String();
while(start<=end && str.charAt(start)==' ')
{
# str1 = str.substring(start); //把值重新赋给 str1
start++;
System.out.println(str1+"...."+start);
}
while(start<=end && str.charAt(end)==' ')
{
# str1 =str.substring(0,end);//把值重新赋给 str1
end--;
System.out.println(str1+"...."+end);
}
return str1;
}
}
结果并不和我想的一样。两个Str1 好像并没有关系一样。
为什么会出现这种情况、
当str1 =str.substring(0,end);改成 str1 =str.substring(start,end);时。结果才是正确的。
一方面说明STring不可以被改变 只是建立了新的字符串。为什么str1 只指向 new的,而不指向 最新赋值的呢?
|