我有一个问题:
String s1="9578";
String s2="434";
int len1=s1.length();
int len2=s2.length();
System.out.println(len1);
System.out.println(len2);
String temp;
temp=s1;
s1=s2;
s2=temp;
System.out.println("after swaping: ");
System.out.println(len1);
System.out.println(len2);
打印出来的是:
4
3
after swaping:
4
3
len1
和len2
的值没有改变。 len1
应该指向s1
,len2
应该指向s2
。为什么他们没有改变?
最佳答案
一旦您为 int
(或任何其他原始数据类型)分配了一个值,它就会“忘记”它的来源。一旦赋值,它就不再是“s1 的长度”,而是简单的 4。不多也不少。
如果你想连续引用s1
的长度,只需在需要时不断调用s1.length()
,而不是将它存储在另一个变量中。
关于java - 字符串的长度变化和保存长度不变的int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23480911/