2016-10-16 47 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)); 
}