【发布时间】:2015-01-19 04:54:51
【问题描述】:
我在这里编写了一个代码来执行以下操作: 提示用户要输入多少个数字。我们将此值称为 userRequest。 因此,userRequest 次我们执行以下操作: 读取一个字符串。此字符串将具有以下形式:数字和字母的混合。 返回字符串的整数和分隔的字母。
但是在返回代码中,我逐个字符地扫描了字符串,因此它分别打印了每个输入。但是,我的问题是如何将数字一起打印为一个整数,将字母一起打印为字符串。 (我认为它需要数组,但是当它在循环中时我无法调用数组)
import java.util.*;
public class Program8{
public static void main(String[] args){
Scanner scan = new Scanner (System.in);
int userRequest;
int returnNum;
System.out.print("How many numbers do you wish to enter? ");
while (!scan.hasNextInt()){
System.err.print("Please try again, with digits only: ");
scan.next();
}//while
userRequest = scan.nextInt();
int sortingNum = 1;
String str;
char ch;
str = scan.nextLine();
for (int i = 0; i < userRequest; i++){
System.out.print("* Please enter a string #" + sortingNum + ": ");
str = scan.nextLine();
System.out.println("- String #" + sortingNum++ + " = " + str);
for (int j = 0; j < str.length(); j++){
ch = str.charAt(j);
if ((ch + 0) >= 48 && (ch + 0) <= 57){
int digit = ((ch + 0) - 48);
System.out.println(digit);
}
}
System.out.println();
for (int k = 0; k < str.length(); k++){
if (str.toLowerCase().charAt(k) >= 'a' && str.toLowerCase().charAt(k) <= 'z')
System.out.println(str.charAt(k));
}
}//for
}//main
}//Program8
【问题讨论】:
-
为了快速解决,您可以尝试使用
print而不是println -
您可以在循环中调用数组,只是不要尝试在循环中声明它:P 虽然这里不需要数组。 Eran 下面的回答很有帮助。
-
我知道,但这会限制我以后使用它们的能力。例如,如果我想对所有整数求和,那将是一个问题。