2013-02-10 34 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

希望這有助於

相關問題