Java char Array – 删除元素

在Java中,我想删除char数组中的某些元素,所以它执行以下操作:

char[] Array1 = {'h','m','l','e','l','l'}; Array1 = //character index[2] to character index[5] 

如何才能做到这一点?

在Java中,您无法从数组中删除元素。 但你可以:

创建一个新的char[]只复制你想要保留的元素; 为此你可以使用System.arraycopy()甚至更简单的Arrays.copyOfRange() 。 例如,仅复制数组的前三个字符:

 char[] array1 = {'h','m','l','e','l','l'}; char[] array2 = Arrays.copyOfRange(array1, 0, 3); 

或者使用List ,它允许您获取具有一系列元素的子列表:

 List list1 = Arrays.asList('h','m','l','e','l','l'); List list2 = list1.subList(0, 3); 

用于从字符数组中删除字符的Java函数:

 String msg = "johnny can't program, he can only be told what to type"; char[] mychararray = msg.toCharArray(); mychararray = remove_one_character_from_a_character_array_in_java(mychararray, 21); System.out.println(mychararray); public char[] remove_one_character_from_a_character_array_in_java( char[] original, int location_to_remove) { char[] result = new char[original.length-1]; int last_insert = 0; for (int i = 0; i < original.length; i++){ if (i == location_to_remove) i++; result[last_insert++] = original[i]; } return result; } 

上述方法打印删除了索引21的消息。 您可以将其放在循环中以删除多个项目。 从技术上讲,您不是删除项目,而是创建一个全新的char数组,并删除该项目。 您必须逐步浏览整个字符串,这是非常低效的。

使用Java中的StringBuilder从字符数组中按索引删除字符:

 String mystring = "inflation != stealing"; char[] my_char_array = mystring.toCharArray(); StringBuilder sb = new StringBuilder(); sb.append(mystring); sb.deleteCharAt(10); my_char_array = sb.toString().toCharArray(); System.out.println(my_char_array); //prints "inflation = stealing" 

上面的代码从字符数组中删除感叹号。 如果要删除RANGE字符,请使用sb.delete(10, 15);

您可以像这样使用Arrays.copyOfRange

 array1 = Arrays.copyOfRange(array1, 2, 5); 

更多信息

您可以使用此方法:

 public static char[] copyArray(char[] original, int start, int length) { char[] result = new char[length]; for (int i = 0; i < length; i++) { result[i] = original[start + i]; } return result; } 

是的,你可以使用Arrays.copyOfRange(char [],起始索引,结束索引)方法。

你也可以查看 –

http://www.codingdiary.com/developers/developers/diary/javaapi/java/util/SampleCode/CopyofRange8ArrayExampleCode.html