将Character []的范围转换为String

时间:2015-11-19 15:07:45

标签: java arrays string

我有阵列:[0,2]

我想取一个数组范围,比如"abc"并将其作为一个字符串。结果将是private static String convertPartArrayToString(char[] array, int startIndex, int endIndex) { char[] dest = new char[endIndex - startIndex + 1]; System.arraycopy( array, startIndex, dest, 0, endIndex - startIndex + 1 ); return new String(dest); }

这个解决方案确实有效:

com.ignet.test1
com.ignet.test2
com.ignet.test3

但是,有没有办法让这比复制数组更快?

2 个答案:

答案 0 :(得分:2)

String has a constructor,其中包含charstartcount数组。

数组仍然会被(防御性地)复制,否则可变状态将会逃脱,你将不再拥有不可变的String

答案 1 :(得分:1)

你有很多内置的JAVA方法,在这种情况下你使用的是System API,在这种情况下并不常见,而不是你可以使用:

Arrays API

private static String convertPartArrayToString(char[] array, int from, int to) {  
    return Arrays.toString(Arrays.copyRange(array, from, to);
}

String API

private static String convertPartArrayToString(char[] array, int from, int to) {  
    return String.copyValueOf(array, from, to - from);
}