繁体   English   中英

如何传递字符串的ArrayList并将每个单独的数组转换成它自己的字符串(java)?

[英]How to pass in an ArrayList of strings and convert each separate array into it's own string (java)?

所以我正在输入包含字符串的输入文件,例如:

birthday54
happy75
nifty43
bob1994

这些字符串是ArrayList的一部分。 我想通过一种可以传递每个字符串并单独打印出来的方法传递此ArrayList。 因此,基本上,我如何获取字符串的ArrayList,将每个单独的字符串分开,然后打印这些字符串? 在我的代码中,我的while循环条件为true,所以这里有一个无限循环,它仅无限地输出第一个字符串“ birthday54”。 我不知道while循环应该有什么条件。 或者,如果我什至应该有一个while循环。 这是我的代码:

    public static void convArrListToString(ArrayList<String> strings){
            int i=0;
            while (true){
                 String[] convert = strings.toArray(new String[i]);  
                 System.out.println(convert[i]);
                }  
            }
    public static void main(String [] args) 
{
    Scanner in = new Scanner(new File("myinputcases.txt"));
    ArrayList<String> list = new ArrayList<String>();
    while (in.hasNext())
        list.add(in.next());

    convArrListToString(list);

我相信您只需要迭代ArrayList并使用“ Get”方法来获取每个字符串,例如:

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

或者您可以为每个循环使用

for(String s : list){ 
 System.out.println(s);
}

干杯!

更改此:

while (true) {
    String[] convert = strings.toArray(new String[i]);  
    System.out.println(convert[i]);
}  

对此:

for (String strTemp : strings) {
    System.out.println(strTemp);
}

它只。OUPUTS“birthday54”因为你没有增加你的i 您可以通过将i++放在while语句的末尾来增加它的数量,但是如果在迭代ArrayList所有值之后这样做会出现错误。 看我的答案,您可以简单地使用for循环来迭代ArrayList

看这个人很痛苦,试试看,而不是while循环:

for (String s : strings) { 
     System.out.println(s); 
}

不需要while循环,数组列表是一个Collections对象,它是Java中的容器类,可以按对象以及按索引进行迭代,因此这应该将每个字符串一一拉出,直到到达数组列表的末尾。

java中关于集合的资源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM