在Java中,我想從一個字符數組中刪除某些元素,因此它不一樣的東西:Java的字符數組 - 刪除元素
char[] Array1 = {'h','m','l','e','l','l'};
Array1 = //character index[2] to character index[5]
如何才能做到這一點?
在Java中,我想從一個字符數組中刪除某些元素,因此它不一樣的東西:Java的字符數組 - 刪除元素
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<Character>
,它可以讓你獲得一個子列表,範圍要素:
List<Character> list1 = Arrays.asList('h','m','l','e','l','l');
List<Character> list2 = list1.subList(0, 3);
您可以使用此方法:
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 [],int,int)'](http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#copyOfRange \ (炭[],%20int,%20int \))。 – 2012-07-11 03:48:55
是的,你可以使用Arrays.copyOfRange(的char [],開始索引,結束索引)方法適合你。
還可以查看此 -
的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"
上述代碼除去從字符陣列感嘆號。如果你想刪除字符的範圍,請使用sb.delete(10, 15);
您是如何複製的某些元素怎麼我想: 「碼」(的char [] =例如//第一個字符到最後3) 是有一個範圍方法什麼的? – user1516514 2012-07-11 03:35:55