正则表达式模式将逗号分隔的字符串转换为点分隔的字符串

时间:2018-01-17 16:03:04

标签: java regex

我想将长数组值转换为特定的字符串格式。

例如longArray = {0,1,2,3}将转换为字符串0.1.2.3

我可以做Arrays.toString(longArray),它将返回[0,1,2,3]。

现在这个字符串[0,1,2,3]必须转换为0.1.2.3

我已经使用了这个有效的代码,但希望看看这段代码是否可以改进

String convertedString = Arrays.toString(longArray).replaceAll(",",".").replaceAll("[\\[,\\],\\s]", "");

我必须提到我在Java 7上,所以不能使用任何Java 8功能,如流 最诚挚的问候,

Saurav

2 个答案:

答案 0 :(得分:1)

    long[] longArray = {0,1,2,3};
    String s = LongStream.of(longArray)
            .mapToObj(Long::toString)
            .collect(Collectors.joining("."));

long的数组long,每个long都映射到Long.toString(long)的String,然后用分隔符.连接。

最初我有String::valueOf而不是Long.toString。感谢@Andreas提供更好的风格。

答案 1 :(得分:0)

不短,但我认为正则表达式使它看起来更优雅:

String convertedString = Arrays.toString(longArray)
.replaceAll("^.|.$", "");
.replaceAll("[^0-9]+",".")
  1. 删除第一个和最后一个字符。
  2. 用点替换所有非数字字符串