我创建了一个程序,它使用Scanner向用户询问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,因为这是停止程序必须输入的数字。
我怎样才能解决这个问题?
检查此代码。
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();
StringBuilder sb = new StringBuilder();
while (value != -1)
{
if(sb.length() == 0){
sb.append(value);
}else{
sb.append(","+value);
}
count = count + 1;
sum = sum + value;
System.out.print("Enter an integer (-1 to quit): ");
value = scan.nextInt();
}
System.out.println ();
if (count == 0)
System.out.println ("No values were entered.");
else
{
System.out.println("Number entered: " + sb.toString());
System.out.println ("The sum is " + sum);
}
}
只需使用string = "," Integer.toString(value);
这将为您提供一个逗号分隔的列表,其中包含您输入的所有值。您当前的语句string=Integer.toString(value);
导致变量字符串在每次迭代中重置为“value”的字符串表示形式。
在您的
while(value != -1){
...
string = Integer.toString(value);
}
您正在用新值替换字符串,因此旧值将丢失。您应该向以前存储的值添加新值。因此,您的代码可能如下所示
string = string + "," + value;
您还应该在处理值之前放置此代码,该值将为-1。
顺便说一句,当您了解更多关于Java的知识时,您就会知道每次调用
string + "," + value
正在创建新字符串。这样的字符串需要复制其他块的内容。对于长字符串,这可能会非常低效。为了优化这一点,我们可以在循环中使用StringBuilder和附加新部件。
在Java 8中,我们还可以使用StringJoiner,它可以自动为我们添加前缀、分隔符和后缀。
问题内容: 给定一个数字: 将其转换为字符串的“最佳”方法是: 问题答案: 有多种方法: (我的偏爱) (我不知道编译器如何处理它,也许它和上面一样有效)
任何人都可以帮我解决这个问题。我接受三个输入:整数、双精度和字符串,但Scanner类不接受字符串值
我需要在一种方法中将文件名作为扫描仪的输入,并在所有其他方法中将该扫描仪用作其余代码的文件路径的引用。 我正在学习文件I/o,对于这个项目,我应该以文件名作为输入,计算文件中的行数,并将每行放入一个数组中。 我的问题出现在FileUtils期间。countRecords方法。在FileUtils中返回文件类型后。打开输入文件(openInputFile),然后将数据放入扫描仪(代码中的变量inf和
我正试图用Java中的扫描器将一个字符串分成另外两个字符串。好像不起作用。我只能通过谷歌找到扫描仪用来读取控制台输入的例子。我从扫描仪的手册中找出了我做事情的方式,我不确定我错了什么。 第一个和第二个是空白的,我不知道为什么。
如何将字符串值转换为整数,并将转换后的值乘以整数,这样我就可以得到300.00的结果。见下面的例子- 如果我像这样编码,那么我就会出错-
问题内容: 在,我该怎么形成的从扫描仪读取结果? 那就是将扫描仪变成我想使用迭代的流。 问题答案: 您正在处理所有错误,不需要: 如果您确实要使用a ,那么您可以这样做: PS,您似乎也没有关闭资源。 总是 关闭一个。