在Android上将字符串转换为整数

Jam*_*ray 173 java string android integer android-edittext

如何将字符串转换为整数?

我有一个文本框我让用户输入一个数字:

EditText et = (EditText) findViewById(R.id.entry1);
String hello = et.getText().toString();
Run Code Online (Sandbox Code Playgroud)

并将值分配给字符串hello.

我想将它转换为整数,这样我就可以得到他们输入的数字; 它将在稍后的代码中使用.

有没有办法得到EditText一个整数?那会跳过中间人.如果没有,字符串到整数就可以了.

Jon*_*Jon 398

请参阅Integer类和静态parseInt()方法:

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

Integer.parseInt(et.getText().toString());
Run Code Online (Sandbox Code Playgroud)

NumberFormatException在解析时遇到问题时你需要捕获,所以:

int myNum = 0;

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


man*_*el 42

int in = Integer.valueOf(et.getText().toString());
//or
int in2 = new Integer(et.getText().toString());
Run Code Online (Sandbox Code Playgroud)


Ash*_*ahu 24

使用正则表达式:

String s="your1string2contain3with4number";
int i=Integer.parseInt(s.replaceAll("[\\D]", ""));
Run Code Online (Sandbox Code Playgroud)

输出:i = 1234;

如果您需要第一个数字组合,那么您应该尝试以下代码:

String s="abc123xyz456";
int i=NumberFormat.getInstance().parse(s).intValue();
Run Code Online (Sandbox Code Playgroud)

输出:i = 123;


Ash*_*ahu 11

使用正则表达式:

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

输出:

i=123;
j=123;
k=123;
Run Code Online (Sandbox Code Playgroud)


小智 8

使用正则表达式是ashish sahu已经提到过的最好的方法

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


Rav*_*ana 7

试试这个代码它确实有效.

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


Tre*_*rek 5

您应该将 String 转换为浮动。这是工作。

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

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

tv.setText(result); 
Run Code Online (Sandbox Code Playgroud)


Rav*_*avi 5

将字符串转换为int的最佳方法是:

 EditText et = (EditText) findViewById(R.id.entry1);
 String hello = et.getText().toString();
 int converted=Integer.parseInt(hello);
Run Code Online (Sandbox Code Playgroud)


Abd*_*wan 5

您可以使用以下内容将字符串解析为整数:

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

(1) input: 12 那么它会起作用..因为textview已经将这个12数字作为“12”字符串。

(2) input: "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());
       }
Run Code Online (Sandbox Code Playgroud)

您可能还想参考以下链接以获取更多信息:http : //developer.android.com/reference/java/lang/Integer.html


小智 5

有五种转换方法 第一种方法:

String str = " 123" ;
int i = Integer.parse(str); 
output : 123
Run Code Online (Sandbox Code Playgroud)

第二种方式:

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

第三种方式:

String str"123";
int i = new Integer(str);
output "123 
Run Code Online (Sandbox Code Playgroud)

第四种方式:

String str"123";
int i = Integer.valueOf(Str);
output "123 
Run Code Online (Sandbox Code Playgroud)

第五种方法:

String str"123";
int i = Integer.decode(str);
output "123 
Run Code Online (Sandbox Code Playgroud)

可能还有其他方法但这就是我现在记得的