在数组中将元素连接成字符串

34

我有点困惑。我无法在任何地方找到答案 ;(

我有一个字符串数组:

String[] arr = ["1", "2", "3"];

然后我通过以下方式将其转换为字符串:

String str = Arrays.toString(arr);
System.out.println(str);

我本希望得到字符串 "123",但我得到了字符串 "[1,2,3]"

在Java中该怎么做呢?我正在使用Eclipse IDE。


1
为什么不循环并连接数组中的每个元素? - ogzd
@LGAP 这看起来不太对。 - Denys Séguret
我已经尝试过了,但是以我的方式并没有成功。 - Leo
4
你为什么将整数值存储在字符串数组中?(原文已翻译,无需修改) - Rohit Jain
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Arrays.html#toString(int[]) - Ofiris
这只是一个例子 ;) - Leo
19个回答


2

Arrays.toString是格式化输出(添加了方括号和逗号)。你应该实现自己的toString方法。

public String toString(String[] arr){
    String result = "";
    for(String s : arr)
        result+=s;
    return result;
}

[编辑] 然而,Stringbuilder更好。请参见上文。

1
Arrays.toString()可以用来将字符串数组转换为字符串。可以使用正则表达式或者replace方法来去除多余的字符。
Arrays.toString(strArray).replace(",", "").replace("[", "").replace("]", "");

Java 8引入了一种新的String join方法:public static String join(CharSequence delimiter, CharSequence... elements)。

String.join("", strArray);

1

需要注意的是,Arrays.toString(arr) 并不会直接打印数组...它只提供要打印的字符串。 - Logan Murphy

0
这是一种方法: Arrays.toString(array)。substring(1,(3 * array.length-1))。replaceAll(“,”,“”);
这是一个演示类:
package arraytostring.demo;

import java.util.Arrays;

public class Array2String {

        public static void main(String[] args) {

                String[] array = { "1", "2", "3", "4", "5", "6", "7" };
                System.out.println(array2String(array));
                // output is: 1234567
        }

        public static String array2String(String[] array) {

                return Arrays.toString(array).substring(1, (3 * array.length - 1))
                                .replaceAll(", ", "");

        }

}

Scala 让这个过程更加简单、清晰和安全:

scala> val a = Array("1", "2", "3")
a: Array[String] = Array(1, 2, 3)

scala> val aString = a.mkString
aString: String = 123

scala> println(aString)
123

0

对于那些在Android上开发的人,可以使用TextUtils。

String items = TextUtils.join("", arr);

假设arr是String[] arr= {"1","2","3"};类型的数组

输出将为123


0

使用Java 8的示例。

  String[] arr = {"1", "2", "3"};
  String join = String.join("", arr);

希望这能有所帮助


你需要将 are 改为 arr - MarredCheese

0

Object类有toString方法。所有继承它的其他类都会覆盖toString方法,因此对于数组,也是以这种方式覆盖toString方法。因此,如果您希望以自己的方式输出结果,则需要创建自己的方法,以便获得所需的结果。

str="";
for (Integer i:arr){
     str+=i.toString();
}

希望这可以帮到你。
参考{{link1:为什么Java中的toString方法似乎不能用于数组}}。

-1
String newString= Arrays.toString(oldString).replace("[","").replace("]","").replace(",","").trim();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接