Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何传入字符串的ArrayList并将每个单独的数组转换为自己的字符串(java)?_Java_Arrays_String_Arraylist_Infinite Loop - Fatal编程技术网

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

如何传入字符串的ArrayList并将每个单独的数组转换为自己的字符串(java)?,java,arrays,string,arraylist,infinite-loop,Java,Arrays,String,Arraylist,Infinite Loop,因此,我将获取一个包含如下字符串的输入文件: birthday54 happy75 nifty43 bob1994 这些字符串是ArrayList的一部分。我想通过一个方法传递这个ArrayList,该方法可以获取每个单独的字符串并单独打印出来。那么基本上,我如何获取字符串的ArrayList,分离每个字符串,然后打印这些字符串呢?在我的代码中,while循环条件为true,所以这里有一个无限循环,它只无限输出第一个字符串birthday54。我不知道while循环应该具备什么条件。或者我甚至

因此,我将获取一个包含如下字符串的输入文件:

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);
更改此项:

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

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

它只输出生日54,因为你没有增加你的i。可以通过将i++放在while语句的末尾来增加它,但是如果在迭代ArrayList中的所有值之后这样做,就会出现错误。请看我的答案,您只需使用for循环来迭代该ArrayList。

看起来很痛苦的人,尝试以下方法,而不是使用while循环:

for (String s : strings) { 
     System.out.println(s); 
}
不需要while循环,数组列表是一个Collections对象,它是Java中的一个容器类,可以通过对象和索引进行迭代,因此这应该将每个字符串逐个拉出,直到接近数组列表的末尾


我相信您只需要迭代ArrayList并使用Get方法获得每个字符串,如下所示:

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

干杯

你所做的只是疯狂…哈哈,我知道。我将此arraylist冗余转换为字符串的主要目的是,我可以使用字符串将其转换为ascii等效项,但我已经计算出了这一部分。如何获取字符串的arraylist,将每个字符串分开。。。字符串列表已被分隔。不清楚您想做什么。您肯定是指strings.forEachSystem.out::println@是的,这比我的答案还短。谢谢:嘿@shmosel,我怎样才能把刚才用你的代码打印出来的字符串传递给另一个不同的函数?@user7428413如果是静态方法,你可以使用字符串@希莫塞尔,你真是个天才。还有一个问题,如果我实现了您刚才编写的代码并将其传递到一个使用for循环的函数中,那么运行时是在^2上还是在On上?
for(String s : list){ 
 System.out.println(s);
}