如何在java中忽略/删除一个数组的值

问题描述:

我有一个单词列表,里面有4个单词,它不能包含更多的单词,它只是一个例子。我想用只是他们的休息应该被忽略的话2或删除例如:如何在java中忽略/删除一个数组的值

String planets = "Moon,Sun,Jupiter,Mars"; 
    String[] planetsArray = planets.split(","); 
    int numberOfPlanets = planetsArray.length; 

结果我得到的是4,如何删除的话,剩下的如果我的列表中包含超过2字?

+1

有你搜索任何类似问题在这里?这个搜索会带来几个你会感兴趣的问题。http://*.com/search?q=delete+from+array+java –

正如你previous question建议,您可以使用

String[] fewPlanets = new String[]{planets[0], planets[1]}; 

只需确保planets阵列有2元以上,以避免ArrayIndexOutOfBoundsException。如果你使用if (planets.length >= 2)

对于更复杂的解决方案,你也可以做到这一点使用System.arrayCopy(),如果你使用的是Java 1.5或更早版本,

int numberOfElements = 2; 
String[] fewPlanets = new String[2]; 
System.arraycopy(planets, 0, fewPlanets, 0, numberOfElements); 

Arrays.copyOf():您可以使用length检查它的Java 1.6或更高版本:

int numberOfElements = 2; 
String[] fewPlanets = Arrays.copyOf(planets, numberOfElements); 
+0

String planets =“月亮,太阳,木星,火星”; \t \t \t String [] planetsArray = planets.split(“,”); \t \t \t String [] fewPlanets = new String [] {planetsArray [0],planetsArray [1]}; \t \t \t System.out。的println(fewPlanets); 我试了一下,但我得到一些奇怪的东西,如果我打印出来:[Ljava.lang.String; @ 67af7a – Kiesa

+0

'[Ljava.lang.String; @ 67af7a'是'fewPlanets.toString()'返回的。这是该实例的唯一标识符。如果要打印数组的内容,请遍历其元素并打印每个元素。例如:for(int i = 0; i

+0

伟大的thx :) – Kiesa

String planets = "Moon,Sun,Jupiter,Mars"; 
String[] planetsArray = planets.split(","); 
if(planetsArray .length > 2){ 
    String []newArr = new String[2]; 
    newArr[0]=planetsArray [0]; 
    newArr[1]=planetsArray [2]; 
    planetsArray = newArr ; 
} 

使用Arrays.asListString[] planetsArray获得StringList A S。

然后使用List接口的方法 - containsremoveadd,...-简单地做任何你想要对List

如果您需要选择第2个行星只是复制数组:

String[] newPlanetsArray = Arrays.CopyOf(planetsArray, 2); 

如果您需要选择2倍特定的行星,你可以应用下面的算法:

首先,创建一个新的数组有2个元素。然后,遍历原始数组中的元素,如果当前元素是匹配项,则将其添加到新数组(追踪新数组中的当前位置以添加下一个元素)。

String[] newPlanetsArray = new String[2]; 

for(int i = 0, int j = 0; i < planetsArray.length; i++) { 
    if (planetsArray[i].equals("Jupiter") || planetsArray[i].equals("Mars")) { 
     newPlanetsArray[j++] = planetsArray[i]; 
     if (j > 1) 
     break; 
    } 
} 
+0

Arrays.copyOf只是Java 1.6及更高版本。 –

你可以使用从How to find nth occurrence of character in a string?一个想法,避免您的逗号分隔字符串输入读取剩余价值。只需找到第二个逗号和串高达有

(如果您的代码段仅仅是一个例子,你没有一个逗号分隔的输入当然,那么请忽略此建议:)