我是一个初学java编程课程,我坚持认为应该简单,但它会杀了我。提示用户输入任意数量的x,y值,并且可以用空格,制表符或新行分隔输入。所以可以这样输入:
1.0 1.0 2.0 2.0 3.0 3.0 etc...
或
1.0 (tab) 1.0 (tab) 2.0 (tab) 2.0 (tab) etc...
或
1.0 1.0
2.0 2.0
3.0 3.0
等...
那很好但很棒,但我不知道如何分开这些数字。我想要有一个x var和一个y var,并希望将它们分成这个,但我该怎么办呢?我的第一个想法可能是一个阵列,但我们还没有覆盖那些。我觉得这很容易,我只是错过了它
答案 0 :(得分:0)
你将要使用正则表达式 - 找到字符串中的所有空格,然后拆分它。
String[] vals = t1.split("[\\s]+");
答案 1 :(得分:0)
我可以为您提供扫描仪。您可以设置可以输入的分隔符。
Scanner s = new Scanner("This is a , test word \n ");
s.useDelimiter(",|\\n");
while(s.hasNext()){
System.out.println(s.next());
}
答案 2 :(得分:0)
你走了。 [ \t]
是一个正则表达式,表示空格或制表符。
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
while (line != null && !line.isEmpty())
{
String[] arr = line.split("[ \t]");
for (int i = 0; i < arr.length; i += 2)
{
doSomething(Double.parseDouble(arr[i]), Double.parseDouble(arr[i+1]));
}
line = br.readLine();
}
}
static void doSomething(double x, double y)
{
System.out.println("x is "+x+", y is "+y);
}
您可能还想要包含一些错误检查。
答案 3 :(得分:0)
您可以使用BufferedReader + Scanner读取由空格或换行符分隔的数据:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Scanner input = new Scanner(br);
&安培;使用扫描仪一个接一个地读取数字,它将等到一个数字然后读取它,无论是什么将它们分隔一个空格或一个新行
int numbersCount = 5; //numbersCount is the count of the numbers you are wanting to read from the input , so if you are waiting 5 numbers then it will be 5.
int[] numbers = new int[numbersCount];
for (int i=0;i<numbersCount;i++)
{
numbers[i] = input.nextInt();
}
所以数组编号将包含你想要的所有数字isA
希望这会有所帮助