如何在java中忽略/删除一个数组的值
我有一个单词列表,里面有4个单词,它不能包含更多的单词,它只是一个例子。我想用只是他们的休息应该被忽略的话2或删除例如:如何在java中忽略/删除一个数组的值
String planets = "Moon,Sun,Jupiter,Mars";
String[] planetsArray = planets.split(",");
int numberOfPlanets = planetsArray.length;
结果我得到的是4,如何删除的话,剩下的如果我的列表中包含超过2字?
正如你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);
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
'[Ljava.lang.String; @ 67af7a'是'fewPlanets.toString()'返回的。这是该实例的唯一标识符。如果要打印数组的内容,请遍历其元素并打印每个元素。例如:for(int i = 0; i
伟大的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.asList从String[] planetsArray
获得String
的List
A S。
然后使用List接口的方法 - contains
,remove
,add
,...-简单地做任何你想要对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;
}
}
Arrays.copyOf只是Java 1.6及更高版本。 –
你可以使用从How to find nth occurrence of character in a string?一个想法,避免您的逗号分隔字符串输入读取剩余价值。只需找到第二个逗号和串高达有
(如果您的代码段仅仅是一个例子,你没有一个逗号分隔的输入当然,那么请忽略此建议:)
有你搜索任何类似问题在这里?这个搜索会带来几个你会感兴趣的问题。http://*.com/search?q=delete+from+array+java –