0

我一直想知道是否有任何方法可以重用字符串,例如:

import java.io.Console;

public class input {
    public static void main (String[] args) {
        Console console = System.console();
        String input = console.readLine("Type username: "); //user input
        // name code
        // clear string
        String input = console.readLine("Hello, what would you like to do: ");  
        // other code
    }
}

通过清除 处的字符串//clear string,因此如果您有一个循环的用户输入,如果某件事不成立,它就不会中断。

4

7 回答 7

5

您不能多次声明同一个变量。但是,您可以根据需要随时重新分配,前提是您尚未将其声明为最终的。

于 2013-07-25T20:11:40.573 回答
2

在您的示例中,您正在重新声明input. 相反,您可以重新分配:

input = console.readLine("Hello, what would you like to do: "); 

注意:如果变量声明为final.

唯一可以选择重新声明变量的情况是当变量在loop. 如果变量不会在 的范围之外使用,那么这样做可能是有意义的loop,即:

while(someCondition)
{
     String s = ...;
}

否则从语义上禁止重新声明变量。

于 2013-07-25T20:10:55.260 回答
0

您不需要每次都声明它,只需声明一次。

于 2013-07-25T20:12:26.773 回答
0

在 java 中,对象会自动删除,因此如果您将本地引用重新分配给第一个字符串,它会被垃圾收集器删除,因为没有人再使用它了。

Java 中的特殊想法是,字符串是不可变的。这意味着,对象字符串在被垃圾收集器删除之前不能更改并且具有它的值。

在上面的示例中,您实际上必须重新分配

input = console.readLine("Hello, what would you like to do: ");  
于 2013-07-25T20:13:28.710 回答
0

重新声明 String 的值将始终替换现有值。因此,如果您只是给它一个不同的值(例如重新声明 int 的值),则无需“清除” String 的值

此代码的具体问题是您在此代码中两次声明了字符串“输入”。任何类中只需要声明一次。您可以通过简单地调用来更改值

input = console.readLine("Hello, what would you like to do: "); 

这会将值重新分配给输入。

于 2013-07-25T20:14:43.490 回答
0
String input= console.readLine("Type username: "); //this is legal

//然而下一行不会是 String input = console.readLine("Hello, what would you like to do:");

//相反,代码应该是这样的:

String input= console.readLine("Type username: "); 

input = console.readLine("你好,你想做什么:");

这将替换字符串输入,您可以“重用”它

于 2013-07-25T20:15:21.243 回答
0

“清除字符串”很简单

input = "";

您不需要重新声明变量。只要您在变量的范围内(相同的方法,或者如果变量是类范围的,类),就可以了。

于 2013-07-25T20:16:39.267 回答