试图将字符串分解为列表

时间:2016-01-28 17:44:12

标签: java arrays

我试图将String转换为List。我通过用户输入获取字符串,但每当我运行我的代码时,它都会给我这个:

  

输入一个数字:java.util.Scanner [delimiters = \ p {javaWhitespace} +] [position = 0] [match valid = false] [need input = false] [source closed = false] [skipped = false] [group separator = \,] [decimal separator =。] [positive prefix =] [negative prefix = \ Q- \ E] [positive suffix =] [negative suffix =] [NaN string = \Q�\ E] [infinity字符串= \Q∞\ E]

这是我的代码

public class ch3_15 {
  public static void main(String[] args) {

    int compNum, user_hund, user_ten, user_one, comp_hund, comp_ten, comp_one;
    String s;

    //user input
    System.out.print("Enter a number: ");
    Scanner input1 = new Scanner(System.in);
    s = input1.toString();

    //generating random number
    compNum = (int) Math.random() * 1000;

    System.out.println(s);

    //finding the hundreds, tens, and ones place of the user number
    List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));       

  }
}

4 个答案:

答案 0 :(得分:2)

这不是错误。这是您使用

后的预期行为
Scanner input1 = new Scanner(System.in);
s = input1.toString();
...
System.out.println(s);

toString()返回表示调用此方法的对象的String(在本例中为Scanner的实例)。

如果您想使用该扫描仪读取用户的行,您应该写

s = input1.nextLine();
//         ^^^^^^^^

答案 1 :(得分:1)

您的问题是您没有从控制台读取下一个字符串,而是将扫描程序转换为字符串,然后打印。 您要使用的是v1 = document.getElementById('double').value; while (v1 < 10) { v1++; now = new Date().getTime(); while(new Date().getTime() < now + 1000) { document.getElementById('inputArea').value = v1; } } ,而不是Scanner.nextLine()

此外,这不是运行时错误,而只是错误的输出。

答案 2 :(得分:0)

您应该使用scanner.nextLine()来读取使用输入的下一行。 您当前的代码正在打印扫描程序对象的toString()方法,这不是运行时错误,而是预期的行为。

//user input
System.out.print("Enter a number: ");
Scanner input1 = new Scanner(System.in);
s = input1.nextLine();

答案 3 :(得分:0)

你没有从目前的路线前进;在这种情况下使用的方法是来自Scanner类的nextLine();所以代码就像:

System.out.print("Enter a number: ");
Scanner input1 = new Scanner(System.in);
s = input1.nextLine();
String aux = s.toString(); // To return the string representation from the sc
来自Java API 7的

nextLine()方法=&gt;此方法返回当前行的其余部分,不包括末尾的任何行分隔符。该位置设置为下一行的开头。** /