java如何切片
切片方法
在Java中,数组或列表的切片可以通过多种方式实现,以下是常见的几种方法:
使用Arrays.copyOfRange()

int[] originalArray = {1, 2, 3, 4, 5};
int[] slicedArray = Arrays.copyOfRange(originalArray, 1, 4); // 包含起始索引,不包含结束索引
// 结果: {2, 3, 4}
使用List.subList()
List<Integer> originalList = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> slicedList = originalList.subList(1, 4); // 包含起始索引,不包含结束索引
// 结果: [2, 3, 4]
使用Stream API

List<Integer> originalList = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> slicedList = originalList.stream()
.skip(1)
.limit(3)
.collect(Collectors.toList());
// 结果: [2, 3, 4]
注意事项
- 对于数组切片,
Arrays.copyOfRange()会创建一个新数组,不影响原数组。 List.subList()返回的是原列表的视图,对子列表的修改会影响原列表。- 使用
Stream API时,skip(n)跳过前n个元素,limit(m)限制取m个元素。
字符串切片
字符串切片可以通过substring()方法实现:
String str = "Hello, World!";
String slicedStr = str.substring(7, 12); // 包含起始索引,不包含结束索引
// 结果: "World"
第三方库
如果需要更灵活的切片操作,可以使用第三方库如Apache Commons Lang的ArrayUtils:
int[] originalArray = {1, 2, 3, 4, 5};
int[] slicedArray = ArrayUtils.subarray(originalArray, 1, 4);
// 结果: {2, 3, 4}
以上方法涵盖了Java中常见的切片需求,根据具体场景选择合适的方式。






