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

猿来是妳 2013-02-26 03:11:54
String[] str = {"我","爱","你","中","国"};
除了用Stringbuffer之外 还有什么方法可以吧上面的数组直接变为:
String str1 = "我爱你中国";
...全文
96897 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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();
    }
提供楼主参考!
糯米菜团子 2013-02-27
  • 打赏
  • 举报
回复
来学习下
小绵羊 2013-02-27
  • 打赏
  • 举报
回复
我是来看坦克哥的
shine333 2013-02-27
  • 打赏
  • 举报
回复
引用 3 楼 shixitong 的回复:
Java code?12String[] str = {"我","爱","你","中","国"};String result=org.apache.commons.lang.StringUtils.join(str);
我超级喜欢StringUtils,甚至当时和sun说过,考虑直接放到jdk里面...
Mourinho 2013-02-27
  • 打赏
  • 举报
回复
可以用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);
    }  
caolipeng_918 2013-02-26
  • 打赏
  • 举报
回复
你也可以直接使用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()); } } }
caolipeng_918 2013-02-26
  • 打赏
  • 举报
回复
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()); } }
翎轩宏 2013-02-26
  • 打赏
  • 举报
回复
String[] str={"我","爱","你","中","国"}; String str1=""; for(int i=0;i<str.length;i++){ str1=str1.concat(str[i]);//和下面的一行二选一即可 //str1+=str[i]; } System.out.println(str1);
失落夏天 2013-02-26
  • 打赏
  • 举报
回复
引用 4 楼 invincible_lanqi 的回复:
引用 2 楼 AA5279AA 的回复:只能遍历,然后合并 因为数组里面对应的是不同的地址。 for(String s:str){ str1+=s.replaceAll(正则表达式,""); } 正则表达式是什么?
看你的要求了。如果你就像你例子中的那个,就不需要这一步了。
abc41106 2013-02-26
  • 打赏
  • 举报
回复
如果你的字符串里面没有 [ ] , 和空格的话,可以用这个 String str1=Arrays.toString(str).replaceAll("[\\[\\], ]", ""); 强烈推荐StringBuilder 循环处理
suciver 2013-02-26
  • 打赏
  • 举报
回复
没什么办法最好就是for循环用StringBuilder了String累加的方式如果数组的数据多了很吃内存
abc41106 2013-02-26
  • 打赏
  • 举报
回复
引用 4 楼 invincible_lanqi 的回复:
引用 2 楼 AA5279AA 的回复:只能遍历,然后合并 因为数组里面对应的是不同的地址。 for(String s:str){ str1+=s.replaceAll(正则表达式,""); } 正则表达式是什么?
你这个应该还用不到replace,直接str+=s;就可以了。
liu4626846 2013-02-26
  • 打赏
  • 举报
回复
引用 3 楼 shixitong 的回复:
Java code ? 12 String[] str = {"我","爱","你","中","国"}; String result=org.apache.commons.lang.StringUtils.join(str);
+1
泰坦小毛驴 2013-02-26
  • 打赏
  • 举报
回复
String[] str = {"我","爱","你","中","国"}; StringBuffer sb = new StringBuffer(); for(int i = 0; i < str.length; i++) { sb. append(str[i]); } String s = sb.toString(); 要不是String的数组,char啥的用构造函数就行
猿来是妳 2013-02-26
  • 打赏
  • 举报
回复
引用 2 楼 AA5279AA 的回复:
只能遍历,然后合并 因为数组里面对应的是不同的地址。 for(String s:str){ str1+=s.replaceAll(正则表达式,""); }
正则表达式是什么?
shixitong 2013-02-26
  • 打赏
  • 举报
回复
String[] str = {"我","爱","你","中","国"};
String result=org.apache.commons.lang.StringUtils.join(str);
失落夏天 2013-02-26
  • 打赏
  • 举报
回复
只能遍历,然后合并 因为数组里面对应的是不同的地址。 for(String s:str){ str1+=s.replaceAll(正则表达式,""); }
huage 2013-02-26
  • 打赏
  • 举报
回复
正则 删除多余的

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧