怎么把一个字符串数组变为一个字符串?

时间:2022-02-28 11:00:46
String[] str = {"我","爱","你","中","国"};
除了用Stringbuffer之外  还有什么方法可以吧上面的数组直接变为:
String str1 = "我爱你中国";

18 个解决方案

#1


正则 删除多余的

#2


只能遍历,然后合并
因为数组里面对应的是不同的地址。
for(String s:str){
str1+=s.replaceAll(正则表达式,"");
}

#3


String[] str = {"我","爱","你","中","国"};
String result=org.apache.commons.lang.StringUtils.join(str);


#4


引用 2 楼 AA5279AA 的回复:
只能遍历,然后合并
因为数组里面对应的是不同的地址。
for(String s:str){
str1+=s.replaceAll(正则表达式,"");
}


正则表达式是什么?

#5


String[] str = {"我","爱","你","中","国"};
StringBuffer sb = new StringBuffer();
for(int i = 0; i < str.length; i++)

sb. append(str[i]);
}
String s = sb.toString();

要不是String的数组,char啥的用构造函数就行

#6


引用 3 楼 shixitong 的回复:
Java code
?



12

String[] str = {"我","爱","你","中","国"}; String result=org.apache.commons.lang.StringUtils.join(str);


+1

#7


引用 4 楼 invincible_lanqi 的回复:
引用 2 楼 AA5279AA 的回复:只能遍历,然后合并
因为数组里面对应的是不同的地址。
for(String s:str){
str1+=s.replaceAll(正则表达式,"");
}

正则表达式是什么?

你这个应该还用不到replace,直接str+=s;就可以了。

#8


没什么办法最好就是for循环用StringBuilder了String累加的方式如果数组的数据多了很吃内存

#9


如果你的字符串里面没有 [ ] , 和空格的话,可以用这个
String str1=Arrays.toString(str).replaceAll("[\\[\\], ]", "");
怎么把一个字符串数组变为一个字符串?

强烈推荐StringBuilder 循环处理

#10


引用 4 楼 invincible_lanqi 的回复:
引用 2 楼 AA5279AA 的回复:只能遍历,然后合并
因为数组里面对应的是不同的地址。
for(String s:str){
str1+=s.replaceAll(正则表达式,"");
}

正则表达式是什么?

看你的要求了。如果你就像你例子中的那个,就不需要这一步了。

#11


String[] str={"我","爱","你","中","国"};
String str1="";
for(int i=0;i<str.length;i++){
    str1=str1.concat(str[i]);//和下面的一行二选一即可
    //str1+=str[i];
}
System.out.println(str1);

#12


public class StringTest {

public static void main(String[] args) {
String[] str={"我","爱","你","中","国"};
changePrint(str);
}
//将一个字符串数组直接以字符串的形式输出
public static void changePrint(String[] value){
//动态添加字符串
StringBuilder sb=new StringBuilder("");
for (int i = 0; i < value.length; i++) {
sb.append(value[i]);
}
System.out.println(sb.toString());
}
}

#13


你也可以直接使用String类库中的方法,将字符串数组转化成单个的字符串输出。程序代码如下

public class StringTest {

public static void main(String[] args) {
String[] str={"我","爱","你","中","国"};
directionPrint(str);
}

//将字符串数组转化成单个字符串直接输出
public static void directionPrint(String[] value){
for (int i = 0; i < value.length; i++) {
System.out.print(value[i].toCharArray());
}
}
}

#14


可以用String.format,仅是一种凑数的解决方法

    public static void main(String[] args){
     String[] str = {"我","爱","你","中","国"};
     final String FORMAT = "%s";
     String format = "";
     for(int i = 0;i < str.length;++i) {
     format += FORMAT;
     }
     String str1 = String.format(format, str);
        System.out.println(str1);
    }  

#15


引用 3 楼 shixitong 的回复:
Java code?12String[] str = {"我","爱","你","中","国"};String result=org.apache.commons.lang.StringUtils.join(str);

我超级喜欢StringUtils,甚至当时和sun说过,考虑直接放到jdk里面...

#16


怎么把一个字符串数组变为一个字符串?我是来看坦克哥的

#17


来学习下 怎么把一个字符串数组变为一个字符串?

#18


引用
String[] str = {"我","爱","你","中","国"};
String result=org.apache.commons.lang.StringUtils.join(str);

这个方法是可行的,起始看内部的该方法的实现,还是通过循环遍历进行拼接:
public static String join(Object array[])
    {
        return join(array, ((String) (null)));
    }
 public static String join(Object array[], String separator)
    {
        if(array == null)
            return null;
        else
            return join(array, separator, 0, array.length);
    }
public static String join(Object array[], String separator, int startIndex, int endIndex)
    {
        if(array == null)
            return null;
        if(separator == null)
            separator = "";
        int bufSize = endIndex - startIndex;
        if(bufSize <= 0)
            return "";
        bufSize *= (array[startIndex] != null ? array[startIndex].toString().length() : 16) + separator.length();
        StrBuilder buf = new StrBuilder(bufSize);
        for(int i = startIndex; i < endIndex; i++)
        {
            if(i > startIndex)
                buf.append(separator);
            if(array[i] != null)
                buf.append(array[i]);
        }

        return buf.toString();
    }
提供楼主参考!

#1


正则 删除多余的

#2


只能遍历,然后合并
因为数组里面对应的是不同的地址。
for(String s:str){
str1+=s.replaceAll(正则表达式,"");
}

#3


String[] str = {"我","爱","你","中","国"};
String result=org.apache.commons.lang.StringUtils.join(str);


#4


引用 2 楼 AA5279AA 的回复:
只能遍历,然后合并
因为数组里面对应的是不同的地址。
for(String s:str){
str1+=s.replaceAll(正则表达式,"");
}


正则表达式是什么?

#5


String[] str = {"我","爱","你","中","国"};
StringBuffer sb = new StringBuffer();
for(int i = 0; i < str.length; i++)

sb. append(str[i]);
}
String s = sb.toString();

要不是String的数组,char啥的用构造函数就行

#6


引用 3 楼 shixitong 的回复:
Java code
?



12

String[] str = {"我","爱","你","中","国"}; String result=org.apache.commons.lang.StringUtils.join(str);


+1

#7


引用 4 楼 invincible_lanqi 的回复:
引用 2 楼 AA5279AA 的回复:只能遍历,然后合并
因为数组里面对应的是不同的地址。
for(String s:str){
str1+=s.replaceAll(正则表达式,"");
}

正则表达式是什么?

你这个应该还用不到replace,直接str+=s;就可以了。

#8


没什么办法最好就是for循环用StringBuilder了String累加的方式如果数组的数据多了很吃内存

#9


如果你的字符串里面没有 [ ] , 和空格的话,可以用这个
String str1=Arrays.toString(str).replaceAll("[\\[\\], ]", "");
怎么把一个字符串数组变为一个字符串?

强烈推荐StringBuilder 循环处理

#10


引用 4 楼 invincible_lanqi 的回复:
引用 2 楼 AA5279AA 的回复:只能遍历,然后合并
因为数组里面对应的是不同的地址。
for(String s:str){
str1+=s.replaceAll(正则表达式,"");
}

正则表达式是什么?

看你的要求了。如果你就像你例子中的那个,就不需要这一步了。

#11


String[] str={"我","爱","你","中","国"};
String str1="";
for(int i=0;i<str.length;i++){
    str1=str1.concat(str[i]);//和下面的一行二选一即可
    //str1+=str[i];
}
System.out.println(str1);

#12


public class StringTest {

public static void main(String[] args) {
String[] str={"我","爱","你","中","国"};
changePrint(str);
}
//将一个字符串数组直接以字符串的形式输出
public static void changePrint(String[] value){
//动态添加字符串
StringBuilder sb=new StringBuilder("");
for (int i = 0; i < value.length; i++) {
sb.append(value[i]);
}
System.out.println(sb.toString());
}
}

#13


你也可以直接使用String类库中的方法,将字符串数组转化成单个的字符串输出。程序代码如下

public class StringTest {

public static void main(String[] args) {
String[] str={"我","爱","你","中","国"};
directionPrint(str);
}

//将字符串数组转化成单个字符串直接输出
public static void directionPrint(String[] value){
for (int i = 0; i < value.length; i++) {
System.out.print(value[i].toCharArray());
}
}
}

#14


可以用String.format,仅是一种凑数的解决方法

    public static void main(String[] args){
     String[] str = {"我","爱","你","中","国"};
     final String FORMAT = "%s";
     String format = "";
     for(int i = 0;i < str.length;++i) {
     format += FORMAT;
     }
     String str1 = String.format(format, str);
        System.out.println(str1);
    }  

#15


引用 3 楼 shixitong 的回复:
Java code?12String[] str = {"我","爱","你","中","国"};String result=org.apache.commons.lang.StringUtils.join(str);

我超级喜欢StringUtils,甚至当时和sun说过,考虑直接放到jdk里面...

#16


怎么把一个字符串数组变为一个字符串?我是来看坦克哥的

#17


来学习下 怎么把一个字符串数组变为一个字符串?

#18


引用
String[] str = {"我","爱","你","中","国"};
String result=org.apache.commons.lang.StringUtils.join(str);

这个方法是可行的,起始看内部的该方法的实现,还是通过循环遍历进行拼接:
public static String join(Object array[])
    {
        return join(array, ((String) (null)));
    }
 public static String join(Object array[], String separator)
    {
        if(array == null)
            return null;
        else
            return join(array, separator, 0, array.length);
    }
public static String join(Object array[], String separator, int startIndex, int endIndex)
    {
        if(array == null)
            return null;
        if(separator == null)
            separator = "";
        int bufSize = endIndex - startIndex;
        if(bufSize <= 0)
            return "";
        bufSize *= (array[startIndex] != null ? array[startIndex].toString().length() : 16) + separator.length();
        StrBuilder buf = new StrBuilder(bufSize);
        for(int i = startIndex; i < endIndex; i++)
        {
            if(i > startIndex)
                buf.append(separator);
            if(array[i] != null)
                buf.append(array[i]);
        }

        return buf.toString();
    }
提供楼主参考!