为什么下面的印的是boss而不是BASS?
String boss = "boss";
char[] array = boss.toCharArray();
for(char c : array)
{
if (c== 'o')
c = 'a';
}
System.out.println(new String(array)); //How come this does NOT print out bass?It prints boss.
您正在更改迭代变量c
。这不会更改数组的内容。迭代变量只是数组元素的副本。如果要修改数组,则需要显式地执行此操作:
for (int i = 0; i < array.length; i++) {
if (array[i] == 'o') {
array[i] = 'a';
}
}
您的原始代码相当于(根据JLS第14.14.2节):
for (int i = 0; i < array.length; i++) {
char c = array[i];
if (c == 'o') {
c = 'a';
}
}
改变局部变量的值永远不会改变其他任何东西--它只是改变了局部变量。作业:
char c = array[i];
将数组中的值复制到局部变量中。它不会将局部变量与数组元素永久关联。
问题内容: 下面的印刷品为什么是老板而不是低音? 问题答案: 你正在更改迭代变量。那不会改变数组的内容。迭代变量只是数组元素的副本。如果要修改数组,则需要显式修改: 你的原始代码等效于(按照JLS的14.14.2节): 更改局部变量的值将永远不会更改任何其他内容,它只会更改局部变量。那作业: 将数组中的值复制到局部变量中。它不会将本地变量与数组元素永久关联。
我正在迭代Java 7循环和Java 8 循环中的列表。Java 8 循环希望其中的变量不会更改。例如: 有人能解释一下为什么吗?是Java 8的弊端吗?
问题内容: 我已经习惯了MSSQL,而不是Mysql,所以对这个可能很愚蠢的问题感到抱歉。我正在尝试通过运行以下查询来更新备份数据库的密码: 当我运行它时,它说 查询正常,受影响的0行(0.01秒)匹配的行:1已更改:0警告:0 为什么行匹配但没有变化? 问题答案: 这意味着该值未更改。由于该列已等于的md5哈希值,因此可能未更改。
foreach 循环语句是 Java 1.5 的新特征之一,在遍历数组、集合方面,foreach 为开发者提供了极大的方便。 foreach 循环语句是 for 语句的特殊简化版本,主要用于执行遍历功能的循环。 foreach 循环语句的语法格式如下: 其中, “类型”为集合元素的类型,“变量名”表示集合中的每一个元素,“集合”是被遍历的集合对象或数组。每执行一次循环语句,循环变量就读取集合中的一
问题内容: 我想动态更新元素的文本: 我是jQuery的新手,因此对我来说,这项任务似乎非常具有挑战性。有人可以指出我要使用的功能/选择器吗? 如果可能的话,我想在不为需要更改的文本添加新容器的情况下执行此操作。 问题答案: 在Javascript中,该属性为您提供元素的所有子节点,包括文本节点。 因此,如果您知道要更改的文本始终是元素中的第一件事,那么请给出以下HTML: 您可以这样做: 当然,
问题内容: 想象一下,我们有这段代码。 由于空间限制,我没有将hashCode()和equals()的代码放入其中,但这是从Eclipse生成的代码。 问题在于,在更改两个集合中的元素之前,这两个集合是相等的。更改它们的值(每个值都相同)后,尽管e1.hashCode()== e2.hashCode()和e1.equals(e2),但这些集合不再相等。 我猜想在比较两个HashSet时,Java使