2011-10-13 3 views
1

私は単語のリストを持っています、4つの単語があります。私が得る結果は私のリストには、より多くのその2が含まれている場合、私は言葉の残りの部分を削除する方法4.あるどのように私はJavaの配列の値を無視/削除するのですか

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

:私はちょうどそれらの残りの部分は無視されるべき単語の2または削除などを使用したいです言葉?

+1

(もちろんそこ

件まで二コンマとストリングを見つけ、あなたが任意の類似したで検索しましたここに質問?この検索で​​は、あなたが興味を持っているいくつかの質問が表示されます。http://stackoverflow.com/search?q=delete+from+array+java –

答えて

1

あなたprevious questionで示唆したように、あなただけのplanets配列がArrayIndexOutOfBoundsExceptionを避けるために2つの要素以上を持っていることを確認してください

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

を使用することができます。あなたはそれをチェックするためにlengthを使用することができます。if (planets.length >= 2)

より洗練されたソリューションについては、使用している場合は、Java 1.5またはそれ以前、

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

またはArrays.copyOf()を使用している場合、あなたはまた、System.arrayCopy()を使用してこれを行うことができますJavaの1.6以降:

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

文字列惑星= "月、日、木星、火星"; \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

はうまく動作します:) – Kiesa

1
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 ; 
} 
1

使用Arrays.asListString[] planetsArrayからListStringのSを取得します。

はその後Listインターフェイスのメソッドを使用する - containsremoveadd、...-単にあなたがそのListにやりたいし。

0

あなたが最初の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以降です。 –

0

あなたはHow to find nth occurrence of character in a string?からのアイデアを使用して、カンマで区切られた文字列の入力から残りの値を読んで避けることができます。あなたのコードスニペットは一例であり、あなたがコンマを持っていない場合は、単に入力を分離し、この提案を無視してください:)

関連する問題