Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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
Java StringBuilder是否根据索引输出?_Java_Tostring_Stringbuilder - Fatal编程技术网

Java StringBuilder是否根据索引输出?

Java StringBuilder是否根据索引输出?,java,tostring,stringbuilder,Java,Tostring,Stringbuilder,若第一个输入是“狗”,第二个输入是“狼”,第三个输入是“猫”。结果如下: Dog | Wolf | Wolf | Cat | Cat | Cat | 我的forloop是否导致此循环过于频繁 public class LabTextManipulation { public static void main(String[] args) { Scanner input = new Scanner(System.in); ArrayList<Stri

若第一个输入是“狗”,第二个输入是“狼”,第三个输入是“猫”。结果如下:

Dog | Wolf | Wolf | Cat | Cat | Cat |
我的forloop是否导致此循环过于频繁

public class LabTextManipulation {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        ArrayList<String> parks = new ArrayList<String>();
        String enteredPark;
        StringBuilder sb = new StringBuilder();
        boolean stop = true;
        while (stop == true) {
            System.out.println("Please enter your favorite National Park or Done to stop: ");
            enteredPark = input.nextLine();
            if (!"Done".equalsIgnoreCase(enteredPark)) {
                parks.add(new String(enteredPark));
                for (int i = 0; i < parks.size(); i++) {
                    sb.append(enteredPark + " | ");
                }//end for
            } else {
                stop = false;
            }
        }

        String nationalParks = sb.toString();
        System.out.println(nationalParks);
    }
}
实际:

" Dog | Wolf | Wolf | Cat | Cat | Cat |"

这是问题的根源

for(int i = 0;i < parks.size(); i++ ) {
    sb.append(enteredPark + " | ");
}

一直都是这样谢谢,根本不需要forloop。谢谢@m、 安特科维茨
for(int i = 0;i < parks.size(); i++ ) {
    sb.append(enteredPark + " | ");
}
if(!"Done".equalsIgnoreCase(enteredPark)) {
    parks.add(enteredPark); // also don't create new String here
    sb.append(enteredPark + " | ");
}