将字符串更改为整数

时间:2016-03-15 19:48:12

标签: java string validation integer

当我运行客户端并输入一个数字时,它将作为字符串传递。但是它必须作为整数传递。我该如何改变?并且当用户输入" *"时,也会从while(true)变为do。该计划结束。

   while (true){
                   System.out.print("Enter a number ");
           String message = keyboard.nextLine(); 
           out.writeUTF(message); 
       }

4 个答案:

答案 0 :(得分:0)

使用int option = keyboard.nextInt();

在这里看到:if you want to know more

答案 1 :(得分:0)

试试这个: Scanner.nextInt()正在回馈一个整数......

实施例

    final Scanner in = new Scanner(System.in);
    int number = 0;
    while(true){
            System.out.print("Enter a number ");
            number = in.nextInt();
            out.writeUTF(number);
    }

更新:

如果您需要在循环中执行此操作,直到用户输入特定键(例如“*”) 然后:

final Scanner in = new Scanner(System.in);
String input = "";
do {
    System.out.print("Enter a number ");
    int numberParsed = 0;
    input = in.nextLine();
    try {
        numberParsed = Integer.parseInt(input);
        System.out.println(numberParsed);
        out.writeUTF(numberParsed);
    } catch (final NumberFormatException ex) {
        System.err.println("That input could not be parsed to integer....");
    }
} while (!input.equals("*"));

答案 2 :(得分:0)

我认为键盘是Scanner类型的对象。

Scanner有一个方法nextInt来检索下一个整数。

否则,您可以使用方法Integer.parseInt将字符串转换为整数,如下所示:

String message = keyboard.nextLine(); 
int myInt = Integer.parseInt(message);

答案 3 :(得分:0)

我不会使用nextLinewriteUTF,而是使用nextInt(和hasNextInt允许您使用{int终止输入writeInt 1}}。使用try-with-resourcesByteArrayOutputStream进行测试,可能类似于

Scanner keyboard = new Scanner(System.in);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try (DataOutputStream out = new DataOutputStream(baos)) {
    System.out.print("Enter a number ");
    while (keyboard.hasNextInt()) {
        int v = keyboard.nextInt();
        out.writeInt(v);
        System.out.print("Enter a number ");
    }
} catch (IOException e) {
    e.printStackTrace();
}
System.out.println(Arrays.toString(baos.toByteArray()));