2016-10-16 70 views
0

我有一個ArrayList,我想獲得第一個元素。打印時,我使用nameofarray.get(0);它打印整個數組,而不是第一個元素。我需要得到第一個元素,但我很困惑,爲什麼它會獲得整個數組,而不僅僅是第一個元素。任何幫助表示讚賞,謝謝!ArrayList獲取方法

import java.util.ArrayList; 
import java.util.Scanner; 

public class Driver { 

public static void main(String[] args) { 
    Scanner k = new Scanner(System.in); 
    String msb; 
    String convertedBinary; 
    ArrayList<String> binaryInput = new ArrayList<String>(); 
    System.out.println("Press 1 to use the Binary Converter: Press 2 to use the Decimal Converter:"); 
    int userChoice = k.nextInt(); 

    if (userChoice == 1) { 
     System.out.println("Welcome to the Binary Converter!"); 
     System.out.println("Please enter a 10 bit binary number"); 
     // Adding the input to the ArrayList 
     binaryInput.add(k.next()); 
     msb = binaryInput.get(0); 
     System.out.println(msb); 

    } 
} 

}

+0

請粘貼當前輸出和預期輸出。 –

+0

我輸入「00000」,我想得到「0」。我正在尋找這個,因爲之後在我的程序中,我將用輸入中的第一個數字做一些事情。 – JavaGuy1

+0

現在打印什麼? –

回答

0

我不認爲Scanner.next()一定會返回一個字符的時間,所以當你將它添加到列表中它被添加輸入了一大塊。因此,您可能必須手動分割插入到列表中之前返回的文本。

「的java.util.Scanner.next()方法查找並從該掃描儀返回下一個完整標記。一個完整的令牌之前和之後輸入的是,分隔符模式匹配」。 from here

+0

啊好吧,這就是我所做的。 – JavaGuy1

+0

'userInput = k.next(); \t \t \t msb = userInput.charAt(0); \t \t \t System.out.println(msb); \t \t \t binaryInput.add(userInput);' – JavaGuy1

0

在您的代碼中,您只能將一個元素添加到數組列表中。您還需要使用循環遍歷ArrayList的值:

System.out.println("binaryInput has: " + binaryInput.size()+ " values"); 

for(int i=0;i<binaryInput.size();i++){ 
    System.out.println(binaryInput.get(i)); 
}