当前位置: 首页 > 知识库问答 >
问题:

为循环中的字符串变量赋值的有效方法

岳玉书
2023-03-14

我正在给一个String变量(name)分配一个值。我知道String数据类型是不可变的,如果我给同一个String变量分配1000个不同的值,它将在String常量池中创建1000个引用。然而,我想不出任何其他有效的方法来做到这一点...请建议...

while ((name = reader.readLine()) != null) {
    //Add each character in the name to the list
    for (char c : name.toCharArray()) {
        if (c != ' ') {  
            list.add(Character.toLowerCase(c));                     
        }
    }               
    namesCount++;         
}

共有1个答案

夏骞尧
2023-03-14

你应该擅长name=reader。readLine()这是一个很好的实践。然而,既然您询问了java中的字符串池,这里有一个很好的解释,说明了何时使用直接字符串赋值与使用新字符串(…) 以及它对堆的影响-http://www.thejavageek.com/2013/06/19/the-string-constant-pool/

 类似资料:
  • 在for循环中为字符串定义值时遇到问题,但我需要它保持不变,即使在循环完成后也是如此。这是我的密码: 我知道如果我给soporte在for或if中赋一个值,它会改变,但我不知道如何做,因为它只是第一次问。还有,代码真的很长。这只是一个片段,所以有些东西是不完整的。P. D.apellido_1是用户的输入,但我使用了将要运行的示例。

  • 我只需要从方法中检索,然后以字符串形式返回该值。

  • 问题内容: 当我编写如下while循环时,在eclipse中使用Java时,我已经无数次朋克: 实际上,我想要 这是一个非常简单的错误,但是它在我身上经常发生,并且完全使该程序无效。这样做的原因是因为当我编写与等式相反的赋值时,Eclipse甚至没有引发警告。这使我相信必须要有一个存在赋值方程的while循环的原因,但是为什么呢?我想不出一次用! 问题答案: 这样的赋值在C和C ++中很流行(尤其

  • 问题内容: 我正在尝试将变量初始化为零,所以目前看起来像这样 它可以工作,但似乎有点多余。有没有更清洁的方法? 问题答案: 我通常会做 但是,这并不重要。这两个版本一目了然。

  • 我尝试用forEach循环遍历一个包含三个变量的数组,并将每个变量的值更改为0-255之间的随机数。 我首先给每个变量一个简单的值:

  • 我有两段递归代码,打算递归地打印出数组的一半,直到得到数组长度为1的数组。没有变量赋值的代码无限运行,而具有变量赋值的代码的行为与预期一样。 有什么线索说明为什么会这样吗? 无限运行,小心 不会无限运行 我以为这里可能存在某种可变性,但我无法想象会有什么连锁反应。我以为每次调用函数时,我们都会将一个全新的数组传递给它。。。