【问题标题】:String Array to String [duplicate]字符串数组到字符串 [重复]
【发布时间】:2013-08-04 04:21:32
【问题描述】:

我正在尝试获取任意长度的字符串 [] 并将其打印到字符串中,最好使用字段分隔符。现在我有:

String[] start = {"first", "second", "third"}; //[] to convert
String cC = "";
String finish = ""; // Final String
String cC1 = "";
{
    for (int i = 0; i < puts.length; i++) {
        cC = puts[i] + ", ";
        cC1 = (finish + cC);
        finish = cC1;
    }
}

但由于某种原因,它只返回“第二个”值。如何使其正确连接值?

另外,我可以使用finish += cC 来简化代码吗?谢谢。

【问题讨论】:

  • 为什么会有这么多变量?
  • 应该putsstart 吗?此外,您应该附加到同一个元素并最终打印该元素。
  • 你应该看看StringBuilder
  • 谢谢,对不起,我从程序中复制它时正在更改名称。

标签: java type-conversion


【解决方案1】:
String[] start = {"first", "second", "third"};
String addedTogether = Arrays.toString(start);

System.out.println(addedTogether);
//prints [first, second, third]

【讨论】:

  • 如果你想要分隔符,看看stackoverflow.com/questions/187676/…
  • 就可以了。谢谢史蒂夫和阿明!
  • @Lableable 没问题。
  • 是的,但这只是因为菜鸟计时器不允许我在大约 20 分钟内接受答案。现在可以使用了。
  • @Lableable Gotcha,谢谢!
【解决方案2】:

如果你想附加到一个字符串,你应该使用 += 例如

String[] start = {"first", "second", "third"};
String cc = "";
String separator = ",";

for (int i = 0; i < start.length; i++) {
    cc += start[i];
    //Not Add , if it is the last element.
    if(i!=start.length-1){
       cc+=separator;
    }
}

等等

您正在按照自己的方式设置要完成的最后一个值。

【讨论】:

  • 不,串联是个坏主意。一般应使用 StringBuilder。 +1 仍然有效/
  • @hexafraction 同意,连接是个坏主意,但尽管如此,@ManosProm 你为什么要使用"One" + "," 而不是"One,"?它不必要地增加了StringBuilder
  • 哦,是的,我想添加数组,我添加了 "one" , "two" 诚实的错误,我将编辑答案来解决这个问题。
  • @hexafraction 通常我知道串联是个坏主意。但他的问题是他没有以正确的方式使用它,与其给他一个全新的方法,不如纠正错误:)
【解决方案3】:
String[] start = {"first", "second", "third"}; //[] to convert
String finish = ""; // Final String
{
    for (int i = 0; i < starts.length; i++) {
        finish = finish + start[i] + ", ";
    }
}

(如果您出于某种原因想要手动完成所有这些操作......)

【讨论】:

    【解决方案4】:

    退房——Java equivalents of C# String.Format() and String.Join()

    这提供了一个 string.join 方法,以及一些有用的字符串实用方法的阅读。

    【讨论】:

      【解决方案5】:

      使用 += 运算符连接字符串是一个非常糟糕的主意。构造 StringBuilder 对象并将所有值附加到它总是更好。最后在 StringBuilder 对象上调用 toString()。

      查看此链接以了解与使用 + 运算符进行字符串连接相关的性能损失。
      http://blog.eyallupu.com/2010/09/under-hood-of-java-strings.html
      How Java do the string concatenation using "+"?

      【讨论】:

      • 我相信你,但请你详细说明为什么“使用 += 运算符连接字符串是一个非常糟糕的主意?”
      • 请参考我在回答中添加的链接。
      猜你喜欢
      • 2018-05-01
      • 2018-06-16
      • 2013-09-15
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 2020-04-20
      相关资源
      最近更新 更多