2016-07-25 101 views
0

我能夠採取輸入在由下面的代碼的陣列的單個線,但是我希望它是─以輸入(測試用例)

3 //沒有測試的例

640 480 //新線

120 300 //新線

180 180 //新線

「3」 是沒有的測試的情況下,六個號碼需要存儲在一個單一的e數組,我應該怎麼做?

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 

    System.out.println("Enter Min Length:-"); 
    String lt = br.readLine();       //Ignore this 
    int length= Integer.parseInt(lt); 

    System.out.println("Enter Test Cases:-"); 
    String temp = br.readLine();      //test-case input 
    int testcases = Integer.parseInt(temp); 

    System.out.println("Enter the W and H"); 
    String array = br.readLine();      //this takes only input in single line 
    String No[] = array.trim().split("\\s+"); 
    int intarray[]= new int[testcases]; 

    for(int i =0;i<intarray.length;i++) 
     { 
     intarray[i]=Integer.parseInt(No[i]); 
     } 
    System.out.println(Arrays.toString(intarray)); 
+0

你知道總沒有測試用例,檢查的readLine直到等於沒有測試用例的而忽略其他。 – lsiva

+0

我正在解決它的一個在線比賽,我不知道測試用例的數量,爲了舉例,我只是保持它在示例部分中的樣子 –

回答

0

你可以嘗試這樣的,

int testcases = Integer.parseInt(temp); 
int i=0; 
List<Integer> list = new ArrayList<Integer>(); 
while(i<=testcases) 
{ 
    System.out.println("Enter the W and H"); 
    String array = br.readLine(); //this takes only input in single line 
    String No[] = array.trim().split("\\s+"); 
    //int intarray[]= new int[testcases]; 

    for(int i =0;i<No.length;i++) 
    { 
    //intarray[i]=Integer.parseInt(No[i]); 
    list.add(Integer.parseInt(No[i])); 
    } 
    Integer[] intArray = list.toArray(new Integer[0]); 
    System.out.println(Arrays.toString(intarray)); 
    i++; 
} 
+0

它不會存儲在單個數組中。 –

+0

我更新了上面的代碼,試試吧 – lsiva

+0

changes-int j = 0; j ++; for(String No1:No){list.add(Integer.parseInt(No1));} done謝謝你非常有幫助,如果你正在寫在線比賽和所有 –