2016-08-03 10 views
4

はここに私のコード私は入力文字列から数字で始まる文字列を必要とする

String itemName = "Daily 60k tube"; 
    String name=""; 
    if(itemName.matches(".*\\d+.*")) 
     { 
      itemName = itemName.substring(itemName.indexOf(" ") + 1); 
      itemName = itemName.substring(0, itemName.indexOf(" ")); 
      name = itemName; 
     } 

である私は必要な出力で私の名前として60Kいます。しかし例外的にクラッシュしています。 これは例外です。

java.lang.StringIndexOutOfBoundsException: length=6; regionStart=0; regionLength=-1 
                   at java.lang.String.startEndAndLength(String.java:298) 
                   at java.lang.String.substring(String.java:1087) 

私の出力は "60k"にする必要があります。この問題を解決するのを手伝ってください。前もって感謝します。

+0

は、文字列のために '' split'またはindexOf'機能を使用することができませんか? – Piyush

+0

を例としてお勧めします。 –

+0

あなたは同じ種類の文字列を取得することは固定ですか?私は「Daily 60k tube」タイプを意味しますか? –

答えて

1

あなたはまた、この

(item.matches(".*\\d+.*" + "k") 

行を置き換えることができますだから、

String[] array = itemName.split(" "); // Daily 60k tube 
    // array: {"Daily","60k","tube"} 
    for (String item : array) { 
     if (item.matches(".*\\d+.*" + "k") { 
      name = item; 
     } 
    } 

ようになります。この

String itemName = "Daily 60k tube"; 
String name=""; 
if(itemName.matches(".*\\d+.*")) 
{ 
    String[] array = itemName.split(" "); // Daily 60k tube 
    // array: {"Daily","60k","tube"} 
    for (String item : array) { 
     if (item.matches(".*\\d+.*")) { 
      name = item; 
     } 
    } 
} 

EDITを試すことができますが、これは

を役に立てば幸い
+0

私は待ちます。 –

+0

私は "Daily Cube only 50k"のような異なる値を得て、出力は "50k"のみにします。 –

+0

ok wait..nowチェック.. –

0

これはあなたに役立つと思います。

int i=itemName.indexOf(" ") + 1; 
    itemName = itemName.substring(i); 
    i=itemName.indexOf(" "); 
    itemName = itemName.substring(0,i); 
    name = itemName; 
+0

それは動作していません。 –

1

コード

String Name; 
String[] array = itemName.split(" "); 
for (int i = 0; i < array.length;i++){ 
    if(Character.isDigit(array[i].charAt(0))) 
    { 
     Name = array[i]; 
     break; 
    } 

} 

のこの作品を試してみてはこの情報がお役に立てば幸いです。 コーディング:)

+0

あなたが役に立ったと思ったら、他の人にとっても有益なものになるように、これを答えとして気に入ってほしいものを解決します。 –

+0

私を助けてくれてありがとう。 –

0

をこの方法を試してみてくださいハッピー:

private static String getResult(String itemName) { 
     String[] result = itemName.split(" "); 
     for (String i : result) { 
      if (Character.isDigit(i.charAt(0))) { 
       return i; 
      } 
     } 
     return null; 
    } 
+0

私を助けてくれてありがとう。 –

関連する問題