java数组转换成string输出(java中string的split方法)

概述

本页面中的内容对 Array 和 String 之间互相进行转换的方法进行一些说明。

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

将 Array 转换为 String

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

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

但是, 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 的相关方法进行转换。

感谢您访问:美文云网站!本文永久链接:https://meiwenyun.com/429136.html。侵删或不良信息举报请联系邮箱:820608633@qq.com或微信:meiwenyun888。
上一篇 2024年8月19日 03:50
下一篇 2024年8月19日 03:50

相关推荐

  • 香港面积多大平方千米 香港面积多大

    香港面积为1106.66平方千米。香港从南往北由香港岛、九龙半岛和新界三大区组成。区分的主要标准是,他们曾经分别在1841年、1860年、1898年被英国逐步占领为殖民地。1949…

    2024年8月12日
    232
  • 加湿器怎么用效果好 冬天干燥用加湿器好吗

    冬天干燥用加湿器好吗 冬天用加湿器好。 冬天室内空气十分干燥,开个加湿器可以增加空气湿度、缓解干燥,所以,冬天是可以适当用用加湿器帮助缓解室内干燥情况的,然而,加湿器也是双刃剑,使…

    2024年8月12日
    305
  • 焉祤嘉读音 焉祤嘉怎么读

    焉祤嘉读音是yān xǔ jiā。焉栩嘉(2001年9月23日-),出生于山东烟台,中国内地男演员、歌手,中国男子唱跳团体X玖少年团成员、男子组合R1SE成员。 2010年,因参与…

    2024年8月2日
    248
  • 怎样选用草药方防治鼻咽癌?

    方1 :石上柏60g,瘦猪肉60g,加水8碗,煎至1碗,1日1次顿服。   功能清热、解毒、祛湿,可用于鼻咽癌、胃癌、肝癌。   个别患者服后感头晕、口淡,减量或停药,反应会逐渐消…

    2023年1月1日
    321
  • 翡翠山水牌的寓意是什么 翡翠山水牌的寓意

    关于这个问题,帮大家(bdjsc.com)整理了最优质的解答。 1、翡翠山水牌子中的“山水”二字,一个寓意是高山仰止,钟情山水,不问世事,希望人们能够远离烦恼,过上淡泊自由的生活,…

    2024年8月10日
    260
  • 晚上喝汤容易长胖吗(减肥喝汤不胖的原理)

      晚上喝汤会长胖吗 1 适量喝不会长胖。 晚上喝汤会不会长胖这个关键在于汤的种类、喝汤的时间以及喝汤的多少,一般来说汤的营养丰富又容易消化,但是如果喝的太晚、太多还是会…

    2023年5月8日
    464
分享本页
返回顶部