Androidで文字列を整数に変換する


182

文字列を整数に変換するにはどうすればよいですか?

私はユーザーに番号を入力してもらうテキストボックスを持っています:

EditText et = (EditText) findViewById(R.id.entry1);
String hello = et.getText().toString();

そして、値は文字列に割り当てられますhello

入力した数値を取得できるように、整数に変換したいのですが、後でコードで使用されます。

EditText整数にする方法はありますか?それは中間者をスキップします。そうでない場合、文字列から整数への変換で問題ありません。


回答:


417

Integerクラスと静的parseInt()メソッドを参照してください。

http://developer.android.com/reference/java/lang/Integer.html

Integer.parseInt(et.getText().toString());

NumberFormatExceptionただし、解析中に問題が発生した場合はキャッチする必要があります。

int myNum = 0;

try {
    myNum = Integer.parseInt(et.getText().toString());
} catch(NumberFormatException nfe) {
   System.out.println("Could not parse " + nfe);
} 

1
以下のマヌエルの方法を使用してどうですか?valueOfよりもparseIntを使用する方が安全ですか?
Gabriel Fair

46
int in = Integer.valueOf(et.getText().toString());
//or
int in2 = new Integer(et.getText().toString());

26

正規表現を使用:

String s="your1string2contain3with4number";
int i=Integer.parseInt(s.replaceAll("[\\D]", ""));

出力:i = 1234;

最初の数値の組み合わせが必要な場合は、以下のコードを試してください:

String s="abc123xyz456";
int i=NumberFormat.getInstance().parse(s).intValue();

出力:i = 123;


13

正規表現を使用:

int i=Integer.parseInt("hello123".replaceAll("[\\D]",""));
int j=Integer.parseInt("123hello".replaceAll("[\\D]",""));
int k=Integer.parseInt("1h2el3lo".replaceAll("[\\D]",""));

出力:

i=123;
j=123;
k=123;

まさに私が探していたもの。
Ahamadullah Saikat 2017

9

正規表現を使用することは、ashish sahuによってすでに言及されているように、これを行うための最良の方法です

public int getInt(String s){
return Integer.parseInt(s.replaceAll("[\\D]", ""));
}

8

実際に機能しているこのコードを試してください。

int number = 0;
try {
    number = Integer.parseInt(YourEditTextName.getText().toString());
} catch(NumberFormatException e) {
   System.out.println("parse value is not valid : " + e);
} 

6

文字列をintに変換する最良の方法は次のとおりです。

 EditText et = (EditText) findViewById(R.id.entry1);
 String hello = et.getText().toString();
 int converted=Integer.parseInt(hello);

5

Stringを浮動に変換する必要があります。動いています。

float result = 0;
 if (TextUtils.isEmpty(et.getText().toString()) {
  return;
}

result = Float.parseFloat(et.getText().toString());

tv.setText(result); 

5

次のコードを使用して、文字列を整数に解析できます。

int value = Integer.parseInt(textView.getText()。toString());

(1) 入力: 12その後、機能します。textviewはこの12の数値を "12"文字列として取得しているためです。

(2)入力: "abdul"の場合、NumberFormatExceptionである例外がスローされます。したがって、これを解決するには、以下で言及するように、try catchを使用する必要があります。

  int tax_amount=20;
  EditText edit=(EditText)findViewById(R.id.editText1);
     try
       {

        int value=Integer.parseInt(edit.getText().toString());
        value=value+tax_amount;
        edit.setText(String.valueOf(value));// to convert integer to string 

       }catch(NumberFormatException ee){
       Log.e(ee.toString());
       }

詳細については、次のリンクを参照することもできます。http//developer.android.com/reference/java/lang/Integer.html


4

1行で行うこともできます。

int hello = Integer.parseInt(((Button)findViewById(R.id.button1)).getText().toString().replaceAll("[\\D]", ""));

実行順序から読み取る

  1. 使用してビューをつかむ findViewById(R.id.button1)
  2. として((Button)______)キャストするために使用しますViewButton
  3. .GetText() ボタンからテキストエントリを取得するために呼び出す
  4. .toString()変化する文字を文字列に変換するための呼び出し
  5. で呼び出し.ReplaceAll()"[\\D]"、数字以外のすべての文字を ""(なし)に置き換えます
  6. Integer.parseInt()グラブを呼び出し、数字のみの文字列から整数を返します。

これは、1行に対して非常に多くのコードです(私の好みだけです)。
Patrick M

ああ、私もそうはしません。それは、OPの「中間者をスキップする」コメントへの参照でした。
Brett Moan 2014年



2

最初の方法を変換する方法は5つあります。

String str = " 123" ;
int i = Integer.parse(str); 
output : 123

2番目の方法:

String str = "hello123world";
int i = Integer.parse(str.replaceAll("[\\D]" , "" ) );
output : 123

第三の方法:

String str"123";
int i = new Integer(str);
output "123 

4番目の方法:

String str"123";
int i = Integer.valueOf(Str);
output "123 

第5の方法:

String str"123";
int i = Integer.decode(str);
output "123 

他の方法もあるかもしれませんが、それは今私が覚えていることです


コード部分をコードとしてマークします。答えが読みやすくなります!
U. Windl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.