【发布时间】:2022-01-08 14:56:12
【问题描述】:
这是我们在本书最后一章中所做的练习。我涵盖了所有内容,除了 if 语句要求输入跟随逗号后的数字。
例如:John Doe,九岁
输出应该触发,逗号应该跟在整数后面。我试图让 if 语句至少认识到如果逗号后的输入不是数字,那么输出 if 语句应该触发但我不能。
至少有效的是带有多个逗号的输入语句。
预期的格式应该是:
简·多伊,9 岁
while (!datapoint.equals("-1")) {
System.out.println("Enter a data point (-1 to stop input):");
datapoint = scnr.nextLine();
int commaCount = 0;
for( int i= 0; i < datapoint.length(); i++)
{
if(datapoint.charAt(i) == ',')
commaCount++;
}
if (commaCount > 1) {
System.out.println("Error: Too many commas in input.");
}
if (datapoint.equals("-1")) {
break;
}
if (!datapoint.contains(",")) {
System.out.println("Error: No comma in string.");
}
if (datapoint.contains(",")) {
String[] values = datapoint.split(",");
temp1 = values[0];
temp2 = values[1];
temp1 = temp1.replace(",", ""); // commma removed ex/ Jane Austen
temp2 = temp2.replace(" ", ""); // space removed ex/ 6
String trigger = temp2;
if (values.length == 2) {
if (temp2.length() > 2) { //if datapoint does not contain a number after commma
System.out.println("Error: Comma not followed by an integer.");
}
if (trigger.length() < 3) {
int convert = Integer.parseInt(temp2); // converts string to integer
System.out.println("Data string: " + temp1);
System.out.println("Data integer: " + convert); // 2
names.add(temp1);
ints.add(convert);
}
}
}
System.out.println();
}
【问题讨论】:
标签: java loops while-loop