2017-10-13 12 views
0

"Peyton Manning; 49"になる文字列があります。コンピュータに文字列の左側を読み込ませ、それを新しい文字列 "Peyton Manning"と同じにして、文字列の右側を取って、それを49の値を持つintと同じにする方法はありますか?数値と文字を持つ文字列をintとStringに分割する

+0

私はあなたが何を求めているのか明確に理解していません。 「左側」と「右側」の意味を明確にすることはできますか?すべての文字列がsme形式で書式設定されていますか? – Alejandro

+0

不明確な言葉をおかけして申し訳ありません。私はこれが意味することは、 "Peyton Manning; 49"という文字列を読んでから、 "Peyton Manning"を文字列にしてintの値を49にしたいということです。私がまだ不明な点がある場合は教えてください必要に応じてさらに詳しく説明することができます。 –

+0

あなたの質問に答えがあると思いますか?それはあなたがしていた場合は、それを正しい印を付けてくださいできますか? –

答えて

0

多くの方法があります:トークン化することも、正規表現を使用することもできます。空白の埋め込みについては指定しませんでした。また、区切り文字の周りの文字列セグメントが無効な整数、混合文字列の数字などである可能性があるかどうかは指定していません。

public class Test { 
     public static void main(String[] args) { 
     String s="Blah; 99"; 

     StringTokenizer st = new StringTokenizer(s, ";"); 
     String name = st.nextToken(); 
     Integer number = Integer.parseInt(st.nextToken().trim()); 
     System.out.println(name.trim() + "---" + number); 

     number = Integer.parseInt(s.replaceAll("[^0-9]", "")); 
     name = s.replaceAll("[^A-Za-z]", ""); 
     System.out.println(name + "---" + number); 

     int split = s.indexOf(";"); 
     name = s.substring(0, split); 
     number = Integer.parseInt(s.substring(split+2, s.length())); 
     System.out.println(name + "---" + number); 
    } 
} 
-1

最も簡単な方法は次のとおりです。

String text = input.replaceAll(" *\\d*", ""); 
int number = Integer.parseInt(input.replaceAll("\\D", "")); 

KISS principleを参照してください。

関連する問題