gpt4 book ai didi

java 。使用扫描器将整数值转换为字符串

转载 作者:行者123 更新时间:2023-12-01 18:11:19 25 4
gpt4 key购买 nike

我创建了一个程序,它使用扫描仪向用户询问 int 值,直到他们插入 -1,这使得程序停止接收数字。执行此操作后,它将添加用户输入的所有值。这是我到目前为止的代码:

public static void main(String[] args)
{
int sum = 0, value, count = 0;
Scanner scan = new Scanner (System.in);
System.out.print ("Enter an integer (-1 to quit): ");
value = scan.nextInt();
String string = Integer.toString(value);
while (value != -1)
{
count = count + 1;
sum = sum + value;
System.out.print("Enter an integer (-1 to quit): ");
value = scan.nextInt();
string = Integer.toString(value);
}
System.out.println ();
if (count == 0)
System.out.println ("No values were entered.");
else
{
System.out.println("Number entered: " + string + ",");
System.out.println ("The sum is " + sum);
}
}

我希望输出如下所示:

Entered numbers: 1,2,3,4,5 //example of number the user might enter
The sum is 15

我想使用一个字符串来给我输入的数字组,但它只给我最后输入的值。这是 -1,因为这是停止程序必须输入的数字。

如何解决这个问题?

最佳答案

在你的

while(value != -1){

...
string = Integer.toString(value);
}

您正在用新值替换字符串值,因此旧值会丢失。您应该为之前存储的值添加新值。所以你的代码可能看起来像

string = string + "," + value;

您还应该在处理 value 之前放置此代码,该值将为 -1

<小时/>

顺便说一句,当你更多地了解 Java 时,你会知道每次调用

string + "," + value

正在创建新字符串。这样的字符串将需要复制其他 block 的内容。如果字符串很长,这可能会非常低效。为了优化这一点,我们可以使用 StringBuilder 并在循环中附加新部分。

在Java 8中我们还可以使用StringJoiner它可以自动为我们添加前缀、分隔符和后缀。

关于 java 。使用扫描器将整数值转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32800290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com