使用.concat循环连接而不使用循环

时间:2014-11-21 04:38:00

标签: java

我想知道是否可以通过循环使用String::concat,而不是使用StringBuilder / StringBuffer

我试过这样,但它没有用。有人可以帮忙解决问题吗?或者给我建议让我自己尝试一下?

    public class multiConcat {
    public static void main(String[] args) {
        int num = 0;
        String finish = "";
        Scanner reader = new Scanner(System.in);

        System.out.println("Type a word: ");
        String state = reader.next();
        System.out.println("Number of Concatenation: ");
        num = reader.nextInt();
        finish = state.concat(state);

            for (int i = 0; i == num; i++) {
              finish.concat(state);
            }

        System.out.println(finish);

    }
}

我认为这将是x = x + 1的概念,即不断覆盖价值......

谢谢

你是说这个意思吗?

        for (int i = 0; i == num; i++) {
            finish = finish.concat(state);
        }

3 个答案:

答案 0 :(得分:2)

finish.concat(state)返回一个新的String,因此您必须分配到finish变量,以便保留对新String的引用:

finish = finish.concat(state);

你已经在循环之前完成了它,但是在循环内你没有做任何返回值为concat的事情,因此循环没有任何改变。

答案 1 :(得分:0)

几点变化。

1。)循环不正确。

应该如下所示,如果num > 1然后在循环中连接。

 if (num > 1) {
            for (int i = 0 ; i < num ; i++) {
                finish = finish.concat(state);
            }
        } else {
            finish = finish.concat(state);
        }

2。)finish.concat(state)返回一个新的String,因此你必须分配到finish变量

finish = finish.concat(state); // **remember Strings are immutable**

完成计划

public class multiConcat {
    public static void main(String[] args) {
        int num = 0;
        String finish = "";
        Scanner reader = new Scanner(System.in);

        System.out.println("Type a word: ");
        String state = reader.next();
        System.out.println("Number of Concatenation: ");
        num = reader.nextInt();

        if (num > 1) {
            for (int i = 0 ; i < num ; i++) {
                finish = finish.concat(state);
            }
        } else {
            finish = finish.concat(state);
        }

        System.out.println(finish);

    }
}

<强>输出

Type a word: 
ankur
Number of Concatenation: 
2
ankurankur


Type a word: 
ankur
Number of Concatenation: 
1
ankur

Type a word: 
ankur
Number of Concatenation: 
3
ankurankurankur

答案 2 :(得分:0)

您可以使用以下代码。

String is immutable所以你必须存储返回的值。

String finish = new String();
finish = finish.concat("Any Value");

使用StringBuilderStringBuffer,您可以这样做

StringBuilder finish = new StringBuilder();
finish.append(state);

StringBuffer finish = new StringBuffer();
finish.append(state);