如何在java中连接2个没有+ concat()和StringBuffer的字符串

时间:2014-03-28 12:55:31

标签: java concat

import java.util.ArrayList;

public class ConcatString {

public static void main(String[] args) {
        // TODO Auto-generated method stub

    ArrayList list=new ArrayList();

    String[] str={"Hello","World!!!!","Java"};
    for(int i=0;i<str.length;i++)
    {
        list.add(str[i]);
    }
    for(int i=0;i<str.length;i++)
    {
        System.out.print(list.get(i));
    }
}

这是正确的方法,因为我是java新手吗? Concat不使用inbuiltin函数或+或StringBuffer ......这是一个面试问题

6 个答案:

答案 0 :(得分:3)

如果你的字符串数组很大,你想使用StringBuilder,因为使用+=字符串连接由于Java字符串不变性而效率低下。

String[] str={"Hello","World!!!!","Java"};
StringBuilder sb = new StringBuilder();
for(String s : str)
{
    sb.append(s);
}
System.out.println(sb.toString());

答案 1 :(得分:1)

像这样:

    String[] str={"Hello","World!!!!","Java"};
    String concat ="";
    for(String s : str)
    {
        concat+=s;
    }
    System.out.println(concat);

答案 2 :(得分:0)

你的目标是什么?。你只需复制字符串数组中的值并将其存储在ArrayList中。用于连接的代码。在java中进行字符串连接只需使用+ operator.Don&#39; t go for complex logic ,如果你有简单的替代品。

答案 3 :(得分:0)

我假设你不能使用StringBuffer而你也不能使用StringBuilder,否则就没有意义。

将两个字符串转换为char数组后,可以连接两个字符串:

public String concat(String[] args){
    int length = 0;
    for (String s : args) {
        length += s.length();
    }
    char[] result = new char[length];

    int i = 0;

    for (String s : args) {
        s.getChars(0, s.length(), result, i);
        i += s.length();
    }

    return new String(result);
}

以下是测试方法:

public void testConcat() {
    String[] s = new String[3];
    s[0] = "abc";
    s[1] = "def";
    s[2] = "ghi";
    System.out.print(concat(s));

    /*
     * Output: abcdefghi
     */
}

答案 4 :(得分:-1)

您可以使用以下一个简单的

String[] str = {"Hello","World!!!!","Java"};
String concat ="";
for(String s : str)
{
    concat+=s;
}
System.out.println(concat);

或使用效率更高的StringBuilder

String[] str={"Hello","World!!!!","Java"};
StringBuilder sb = new StringBuilder();
for(String s : str)
{
    sb.append(s);
}
System.out.println(sb.toString());

答案 5 :(得分:-1)

你不需要Arraylist进行连接。尝试以下方法

    String[] str={"Hello","World!!!!","Java"};
    StringBuilder finalString = new StringBuilder();
    for(int i=0;i<str.length;i++)
    {
        finalString.append(str[i]);
    }
    System.out.println(finalString);