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

时间:2010-04-25 17:57:55

标签: java android string integer android-edittext

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

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

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

并将值分配给字符串hello

我想将其转换为整数,以便我可以输入他们输入的数字;它将在稍后的代码中使用。

有没有办法让EditText变为整数?那会跳过中间人。如果没有,字符串到整数就可以了。

13 个答案:

答案 0 :(得分:392)

请参阅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 :(得分:40)

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

答案 2 :(得分:24)

使用正则表达式:

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

输出: I = 1234;

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

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

输出: I = 123;

答案 3 :(得分:10)

使用正则表达式:

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;

答案 4 :(得分:8)

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

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

答案 5 :(得分:7)

尝试使用此代码,它确实有效。

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

答案 6 :(得分:5)

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

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

答案 7 :(得分:4)

您应该将String转换为float。它正在发挥作用。

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

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

tv.setText(result); 

答案 8 :(得分:4)

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

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

(1) 输入: 12然后它将起作用..因为textview将这12个数字作为&#34; 12&#34;字符串。

(2)输入:&#34; abdul&#34;然后它会抛出一个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

答案 9 :(得分:2)

你也可以一行:

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

从执行顺序中读取

  1. 使用findViewById(R.id.button1)
  2. 抓取视图
  3. 使用((Button)______)View转换为Button
  4. 致电.GetText()以获取Button
  5. 中的文字条目
  6. 调用.toString()将字符变化转换为字符串
  7. 使用.ReplaceAll()致电"[\\D]",将所有非数字字符替换为“”(无)
  8. 调用Integer.parseInt()抓取并从仅数字字符串中返回一个整数。

答案 10 :(得分:2)

更简单的方法是使用decode的{​​{1}}方法,例如:

Integer

答案 11 :(得分:1)

科特林

有可用的扩展方法可将其解析为其他原始类型。

Java

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

答案 12 :(得分:0)

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

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 

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