【发布时间】:2016-03-25 23:15:00
【问题描述】:
我想编写一个简单的程序,要求您通过键盘输入数字(每个数字用空格或逗号分隔),然后将它们从低到高排序。
我的想法是要求用户通过键盘输入数字,将输入设置为 String 对象,然后将 String 传递给一个 for 循环,以确定字符是数字还是普通字符。 如果字符是数字,它将被附加到字符串数组的字段并查找下一个数字并执行相同的操作,直到一个字符不是数字;在这种情况下,它将寻找另一个数字并重复相同的过程,但使用下一个字符串数组的字段。 一旦程序通过了孔String的长度,String Array的每个字段都会被转换成一个int,这样就可以进行排序了。
问题是我不知道如何将未定义数量的字符添加到String。
我要做的是:
public class StartHere {
public static void main(String[] args) {
int[] numbers;
String input;
boolean fieldUsed = false;
int len = 0;
Scanner scanner = new Scanner(System.in);
input = scanner.next();
numbers = new int[input.length()];
String[] aux = new String[input.length()];
int numOfAuxField = 0;
for (int i = 0; i < input.length(); i++) {
do{
if(Character.isDigit(input.charAt(i))){
aux[numOfAuxField].append((input.charAt(i)).toString());
i++;
fieldUsed = true;
}else{
if(fieldUsed == true){
numOfAuxField++;
}
} while(Character.isDigit(input.charAt(i)));
}
for (int a = 0; a < numbers.length; a++){
if(aux[a] != null){
numbers[a] = Integer.parseInt(aux[a]);
}
}
}
}
但它说
无法在原始类型 char 上调用 toString()
在第 16 行。 我已经在寻找答案,但它们都是针对预定义数量的字符。
我能做什么?
【问题讨论】:
-
代替
.toString,将(String)放在字符前,转换成字符串。 -
您能否举例说明用户输入的内容以及您期望的结果?谢谢
-
为什么还要将数字放在字符串中?为什么不只是一个
ArrayList<Integer>? -
由于您是逐个字符读取输入的字符,您是否处理了超过 1 位的数字?
标签: java arrays string algorithm sorting