【发布时间】:2014-10-20 19:06:24
【问题描述】:
我的挑战是通过用户输入找到字符串中元素的总值。 用户输入应为:1,2,3,4,5,6,7...
当我尝试使用 StringTokenizer 时遇到了问题,所以我使用了 split() 方法,但总金额减少了 7 或 28,具体取决于我使用的是 (i + i) 还是 (+= i) 在第二个 for 循环中。
// Libraries
import java.util.Scanner;
import java.util.StringTokenizer;
public class Project_09_8
{
public static void main(String[] args)
{
// Create instance of Scanner class
Scanner kb = new Scanner(System.in);
// Variables
String input; // Holds user input
String [] result; // Holds input tokens in an array
int i = 0; // Counter for loop control
// User input
System.out.print("Please enter a positive whole number, separated by commas: ");
input = kb.nextLine();
result = input.split(",");
// Converts input String Array to Int Array
int [] numbers = new int [result.length];
// Loop through input to obtain each substring
for (String str: result) {
numbers[i] = Integer.parseInt(str);
i++;
}
// Receive this output when printing to console after above for loop [I@10ad1355.
/*
// Loop to determine total of int array
int sum = 0; // Loop control variable
for (int j : numbers) {
sum += i;
//sum = i + i;
}
// Print output to screen
System.out.println("\nThe total for the numbers you entered is: " + sum);
*/
} // End main method
} // End class
【问题讨论】:
-
你在
sum添加什么?我认为你的程序有一个严重的错字。 -
你不想
sum += j吗? -
@ ajb - 你是对的。不敢相信我没有看到。 @ Ben - 是的,我的意思是使用 sum += j 而不是 i。一旦我改变了它,它就可以正常工作了。
标签: java arrays split stringtokenizer