java - 字符串的长度变化和保存长度不变的int

标签 java string

我有一个问题:

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

len1len2 的值没有改变。 len1 应该指向s1len2 应该指向s2。为什么他们没有改变?

最佳答案

一旦您为 int(或任何其他原始数据类型)分配了一个值,它就会“忘记”它的来源。一旦赋值,它就不再是“s1 的长度”,而是简单的 4。不多也不少。

如果你想连续引用s1的长度,只需在需要时不断调用s1.length(),而不是将它存储在另一个变量中。

关于java - 字符串的长度变化和保存长度不变的int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23480911/

相关文章:

java - 使用jxl为excel表中的单元格设置不同的颜色

python - 从字符串生成所有 n 元组

sql - 如何在 SQL 准备语句中转义单引号和双引号?

python - 如何使用 python 正确地将引号添加到字符串?

java - 线程等待时出现大量 IllegalMonitorStateException

java - 如何在 Mule 连接器中添加下拉列表项?

java - 如何在maven、Spring-boot中解决 "Conflicting lifecycle mapping"

java - 如何在Java中格式化UDP数据包?

Java ME 双空格中的字符串替换

c - 如何使用指针将字符串分割成两个字符串? C语言