web-dev-qa-db-ja.com

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

文字列を整数に変換する方法

テキストボックスがあります。ユーザーに番号を入力させます。

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

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

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

EditTextを整数にする方法はありますか?それは仲介人をスキップするでしょう。そうでなければ、整数から文字列への変換は問題ありません。

168
James Rattray

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);
} 
393
Jon
int in = Integer.valueOf(et.getText().toString());
//or
int in2 = new Integer(et.getText().toString());
40
manuel

正規表現を使う:

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

出力:i = 1234。

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

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

出力:i = 123。

24
Ashish Sahu

正規表現を使う:

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;
10
Ashish Sahu

Ashish sahuで既に言及されているように、正規表現を使用するのがこれを行うための最良の方法です。

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

それが本当にうまくいっているこのコードを試しなさい。

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

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

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

以下を使用して、文字列を整数に解析することができます。

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

(1)12入力: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
Abdul Rizwan

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

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

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

tv.setText(result); 
4
Tren Narek

1行にすることもできます。

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

実行順からの読み方

  1. findViewById(R.id.button1)を使ってビューをつかみます
  2. ViewButtonとしてキャストするには((Button)______)を使用してください。
  3. Buttonからテキストエントリを取得するには、.GetText()を呼び出します。
  4. .toString()を呼び出して、可変長文字列を文字列に変換します。
  5. すべての数字以外の文字を ""(なし)に置き換えるには、.ReplaceAll()"[\\D]"とともに呼び出します。
  6. Integer.parseInt() grabを呼び出してDigit-only文字列から整数を返します。
2
Brett Moan

もっと簡単な方法はdecodeIntegerメソッドを使うことです。例えば:

int helloInt = Integer.decode(hello);
2
Joseph Chotard

コトリン

それらを他のプリミティブ型に解析するための利用可能な拡張メソッドがあります。

Java

String num = "10";
Integer.parseInt(num );
1
Khemraj

The First Wayを変換する方法は5つあります。

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

第二の方法:

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

第三の方法:

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

第四の方法:

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

第五の方法:

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

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

1
user11151078