2013-02-10 120 views
0

我在初学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

如果你把输入的字符串,你可以做类似

String[] input = inputString.split(" "); 

然后,每个元素转换到你想要的类型。

0

您可以通过空间使用分割字符串下列内容:

String[] parts = userinput.split(" "); 

您可以通过选项卡使用分割字符串下列内容:

String[] parts = userinput.split("\t"); 

您可以通过线分割字符串,最多返回使用下列内容:

String[] parts = userinput.split("\n"); 

注意:您可能木珠到“/ R”添加到上面\ n

所以,找到自己的分隔符,通过(如果需要以上)以上的,使用一个

,那么你应该有一个String数组,所有的数据

0

我可以为您提供拆分您的字符串使用扫描仪。您可以设置可以输入的分隔符。

Scanner s = new Scanner("This is a , test word \n "); 
s.useDelimiter(",|\\n"); 
while(s.hasNext()){ 
    System.out.println(s.next()); 
} 
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); 
} 

您可能还想包括一些错误检查。

0

可以使用的BufferedReader +扫描器读取由空格或换行分隔的数据:

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

希望这有助于

相关问题