我有阵列:[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
但是,有没有办法让这比复制数组更快?
答案 0 :(得分:2)
String has a constructor,其中包含char
,start
和count
数组。
数组仍然会被(防御性地)复制,否则可变状态将会逃脱,你将不再拥有不可变的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);
}