web-dev-qa-db-ja.com

Android:Stringをintに変換

私は、バーコードスキャナーから生成された文字列をintに変換しようとしているだけなので、残りを取得して整数のセット数を生成することで操作できます。これまで私は試しました:

int myNum = 0;

try {
    myNum = Integer.parseInt(myString.getText().toString());
} catch(NumberFormatException nfe) {

} 

そして

Integer.valueOf(mystr);

そして

int value = Integer.parseInt(string); 

最初のエラーは私にエラーを与えます:getText()メソッドはString型では未定義ですが、最後の2つはコンパイルエラーはありませんが、それらが呼び出されるとアプリはすぐにクラッシュします。私はそれが私のバーコードスキャンインテントメソッドに関係していると思いましたが、OnCreateにそれを入れて、それでもエラーを得ました。

37
willmer

変化する

try {
    myNum = Integer.parseInt(myString.getText().toString());
} catch(NumberFormatException nfe) {

try {
    myNum = Integer.parseInt(myString);
} catch(NumberFormatException nfe) {
45
citizen conn

すでに文字列ですか? getText()呼び出しを削除します。

int myNum = 0;

try {
    myNum = Integer.parseInt(myString);
} catch(NumberFormatException nfe) {
  // Handle parse error.
}
9
JK.

文字列をintに変換するコード行を記述するだけです。

 int convertedVal = Integer.parseInt(YOUR STR);
8

正規表現を使用:

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

正規表現を使用します。

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

出力:i = 1234;

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

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

出力:i = 123;

2
Ashish Sahu

整数値がゼロまたはゼロで始まる場合、文字列に変換できません(この場合、最初のゼロは無視されます)。変更してみてください。

int NUM=null;
1
ABi

バーコードは多くの場合、大きな数字で構成されているため、intに変換しようとしている文字列のサイズが原因でアプリがクラッシュすると思います。 BigIntegerを使用できます

BigInteger reallyBig = new BigInteger(myString);
1
Ker p pag

これを試して

String t1 = name.getText().toString();
Integer t2 = Integer.parseInt(mynum.getText().toString());

boolean ins = myDB.adddata(t1,t2);

public boolean adddata(String name, Integer price)
0
Dev_android