我们可以利用 原生 Java(vanilla Java) 或者一些第三方的 Java 工具类来实现这个转换。
ies.

将 Array 转换为 String

在有时候我们希望将字符串的数字或者整数类型的数组转换为字符串。
但是如果我们直策应用 toString() 来进行转换的话,你可能会得到类似下面 Ljava.lang.String;@74a10858 的字符串。

上面的字符串显示的是工具的类型和当前这个工具的哈希代码

methtmlgetarrayJava Array 和 String 的转换 PHP

但是, java.util.Arrays 工具类也能够支持一些 toString() 的方法来将 Array 转换为 String。

Arrays.toString() 将输入的数组转换为字符串,在转换后的字符串将会利用逗号分隔符,同时在字符串的前后会添加一个方括号 []。

可以稽核下面的代码:

String[] strArray = {"one", "two", "three"}; String joinedString = Arrays.toString(strArray); assertEquals("[one, two, three]", joinedString); int[] intArray = {1, 2, 3, 4, 5}; joinedString = Arrays.toString(intArray); assertEquals("[1, 2, 3, 4, 5]", joinedString);StringBuilder 的 append() 方法

这个是基于 Java 的原生实现,你可以对须要转换的数组进行遍历,然后将遍历的结果利用 append() 方法添加到字符串后面。

String[] strArray = {"Convert", "Array", "With", "Java"}; StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < strArray.length; i++) { stringBuilder.append(strArray[i]); } String joinedString = stringBuilder.toString(); assertEquals("ConvertArrayWithJava", joinedString);

其余,如果你的数组中存储的数据是整形的话,那么你可以利用方法转换函数,首先将整数类型转换为字符串后再添加。

Java Streams API

从 Java 8 及其以上的版本,你可以利用 String.join() 方法将给出的数组元素利用不同的连接字符串连接在一起,在我们利用案例中,我们利用空缺字符进行连接。

String joinedString = String.join("", new String[]{"Convert", "With", "Java", "Streams"}); assertEquals("ConvertWithJavaStreams", joinedString);

更多的是,我们可以利用 Java Streams API 中的 Collectors.joining() 方法来进行连接,这个连接的方法将会保留和输入数据相同的顺序。

String joinedString = Arrays .stream(new String[]{"Convert", "With", "Java", "Streams"}) .collect(Collectors.joining()); assertEquals("ConvertWithJavaStreams", joinedString);StringUtils.join()

Apache Commons Lang 为字符串处理供应了非常好的方法,能够很好的帮我们办理上面的问题。

这个 join 的方法可以通过输入的数据进行自动进行合并,合并的结果与你输入数据的顺序相同。

String joinedString = StringUtils.join(new String[]{"Convert", "With", "Apache", "Commons"}); assertEquals("ConvertWithApacheCommons", joinedString);Joiner.join()

同样的 Guava 也供应了同样的工具类来利用。

例如,我们可以利用下面的代码来对数组进行连接。

String joinedString = Joiner.on("") .skipNulls() .join(new String[]{ "Convert", "With", "Guava", null });assertEquals("ConvertWithGuava", joinedString);将字符串转换为数组

同样的,在有些时候,我们希望能够将字符串转换为数组。

最常用的情形便是有一个输入的字符串,利用特定的分隔符,我们须要按照分隔符的位置将字符串拆分为数组。

String.split()

这个是最大略的方法了,可以直接把字符串中的字符利用给定的字符进行拆分,如下面的代码:

String[] strArray = "loremipsum".split("");

上面的代码将会天生下面的输出,由于我们没有给定任何分隔符,以是这个方法将会按照字符进行拆分。

["l", "o", "r", "e", "m", "i", "p", "s", "u", "m"]StringUtils.split()

其余,可能用得最多的便是 Apache 的 Commons 中的 StringUtils ,这个能够对指定的字符串进行拆分。

如果利用 String 的方法进行拆分的话,可能会碰着空工具的问题,例如你输入的字符串可能是空字符串,这个时候 String 自带的原生方法将会抛出空非常。

如果利用 StringUtils 方法的话,可以有效的避免空工具的非常,因此这个工具类是非常常用的。
在默认的情形下,这个方法利用的是空格作为分隔符。

String[] splitted = StringUtils.split("lorem ipsum dolor sit amet");

上面的方法将会输出下面的数组。

["lorem", "ipsum", "dolor", "sit", "amet"]Splitter.split()

末了,你还可以利用 Guava 的拆分 API,如果 Apache Commons 供应的方法,常日 Guava 也能供应类似的。

例如我们可以利用下面的方法进行拆分,可以看到的是,我们在拆分的时候可以同时对结果进行处理。

List<String> resultList = Splitter.on(' ') .trimResults() .omitEmptyStrings() .splitToList("lorem ipsum dolor sit amet"); String[] strArray = resultList.toArray(new String[0]);

上面的代码能够天生下面的结果:

["lorem", "ipsum", "dolor", "sit", "amet"]结论

本页面对 String 和 Array 之间的转换方法进行了一些解释。
一样平常来说可以利用原生方法进行转换,但是我们常日不建议利用,紧张是方法功能比较差,同时还非常随意马虎涌现空工具非常。

因此建议利用 Apache Commons 或者 Guava 的干系方法进行转换。