我想将长数组值转换为特定的字符串格式。
例如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
答案 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]+",".")