在控制台中输入后阻止进入下一行

时间:2017-03-26 09:24:54

标签: java arrays input

我的Java程序有问题。我在控制台上运行程序(CMD)。

在我输入输入后,我希望控制台保持在同一条线上(目前它会自动转到下一行)。

这是我目前的计划:

int data[];
Scanner in = new Scanner(System.in);
data = new int[10];
System.out.println("Please Insert Numbers : ");
for(int i=0;i<5;i++)
  {
    data[i] = in.nextInt();
    System.out.print("/t");
  }

如何返回行的开头而不是转到下一行?

2 个答案:

答案 0 :(得分:0)

Scanner in = new Scanner(System.in);
System.out.println("Please Insert Numbers Separated By Comma: ");
String input = in.nextLine();
input = input.replaceAll("\\s",""); //remove whitespaces
String[] numbers= input.split(",");  //build string array using ',' as delimiter between numbers
int data[]= Arrays.asList(numbers).stream().mapToInt(Integer::parseInt).toArray(); //Available since Java8

答案 1 :(得分:0)

就像Oscar Martinez所说,你可以读取由空格分隔的一串数字并构建你的整数数组,就像这个例子一样(在将字符串解析为int之前,我验证字符串是否可以使用{转换为int或不转换为int {3}}):

import java.util.Arrays;
import java.util.Scanner;


public class Main {

    public static void main(String[] args){
        int data[];
        Scanner in = new Scanner(System.in);
        data = new int[10];
        System.out.println("Please Insert Numbers : ");
        String line = in.nextLine();
        String[] stringsNumber = line.split("\\s");
        for(int i=0;i<stringsNumber.length;i++){
            if(stringsNumber[i].matches("^\\d+$") && i<10){// \\d  is a regex to verify if s is a number

                data[i]= Integer.parseInt(stringsNumber[i]);

            }

        }
        System.out.println(Arrays.toString(data));
    }
}