如何在字符串中添加未定义的数字字符数,那么我可以将字符串转换为int?

Spa*_*186 2 java arrays sorting string algorithm

我想编写一个简单的程序,要求您通过键盘输入数字(每个数字用空格或逗号分隔),然后将它们从低到高排序.

我想到的是要求用户通过键盘输入数字,将输入设置为String对象,然后通过for循环传递String,确定字符是数字还是普通字符.如果caracter是一个数字,它将附加到一个String数组的字段并查找下一个数字并执行相同的操作,直到一个字符不是数字; 在这种情况下,它会查找另一个数字并重复相同的过程,但使用下一个String数组的字段.一旦程序通过了String String的长度,String Array的每个字段都将转换为int,因此可以对其进行排序.

问题是我不知道如何将未定义数量的字符添加到a 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]);
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

但它说

无法在基本类型char上调用toString()

在第16行.我已经找到了答案,但他们都是预定义的字符数.

我能做什么?

And*_*lko 6

您应该使用以下方法之一:

  1. Character.toString(input.charAt(i))
  2. "" + input.charAt(i)
  3. String.valueOf(input.charAt(i))

代替 (input.charAt(i)).toString()


原始类型没有方法可以使用它们.