私は、バーコードスキャナーから生成された文字列を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にそれを入れて、それでもエラーを得ました。
変化する
try {
myNum = Integer.parseInt(myString.getText().toString());
} catch(NumberFormatException nfe) {
に
try {
myNum = Integer.parseInt(myString);
} catch(NumberFormatException nfe) {
すでに文字列ですか? getText()呼び出しを削除します。
int myNum = 0;
try {
myNum = Integer.parseInt(myString);
} catch(NumberFormatException nfe) {
// Handle parse error.
}
文字列をintに変換するコード行を記述するだけです。
int convertedVal = Integer.parseInt(YOUR STR);
正規表現を使用:
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;
正規表現を使用します。
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;
整数値がゼロまたはゼロで始まる場合、文字列に変換できません(この場合、最初のゼロは無視されます)。変更してみてください。
int NUM=null;
バーコードは多くの場合、大きな数字で構成されているため、int
に変換しようとしている文字列のサイズが原因でアプリがクラッシュすると思います。 BigInteger
を使用できます
BigInteger reallyBig = new BigInteger(myString);
これを試して
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)