201

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

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

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

并将值分配给字符串hello

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

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

4

13 回答 13

451

请参阅 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);
} 
于 2010-04-25T18:01:36.220 回答
49
int in = Integer.valueOf(et.getText().toString());
//or
int in2 = new Integer(et.getText().toString());
于 2011-03-31T08:12:43.327 回答
26

使用正则表达式:

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

输出:i=1234;

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

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

输出:i=123;

于 2014-03-15T13:47:19.943 回答
13

使用正则表达式:

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;
于 2014-01-31T19:41:18.077 回答
9

正如ashish sahu已经提到的那样,使用正则表达式是最好的方法

public int getInt(String s){
return Integer.parseInt(s.replaceAll("[\\D]", ""));
}
于 2015-03-02T03:11:08.890 回答
8

Try this code it's really working.

int number = 0;
try {
    number = Integer.parseInt(YourEditTextName.getText().toString());
} catch(NumberFormatException e) {
   System.out.println("parse value is not valid : " + e);
} 
于 2014-11-17T10:13:11.773 回答
7

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

 EditText et = (EditText) findViewById(R.id.entry1);
 String hello = et.getText().toString();
 int converted=Integer.parseInt(hello);
于 2014-01-10T08:56:11.200 回答
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());
       }

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

于 2014-06-01T08:43:26.413 回答
5

您应该将字符串转换为浮动。这是工作。

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

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

tv.setText(result); 
于 2013-10-17T05:46:28.473 回答
4

你也可以用一行来做:

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

从执行顺序读取

  1. 使用获取视图findViewById(R.id.button1)
  2. 用于((Button)______)转换ViewButton
  3. 调用 .GetText() 以从 Button 获取文本条目
  4. 调用.toString()以将 Character Varying 转换为 String
  5. 调用.ReplaceAll()with"[\\D]"将所有非数字字符替换为“”(无)
  6. 调用Integer.parseInt()grab 并从仅数字字符串中返回一个整数。
于 2014-10-28T05:57:08.097 回答
4

有五种方法可以转换 The First Way :

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 

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

于 2019-03-04T23:51:04.463 回答
3

更简单的方法是使用 so 的decode方法,Integer例如:

int helloInt = Integer.decode(hello);
于 2017-02-09T16:26:45.600 回答
3

科特林

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

爪哇

String num = "10";
Integer.parseInt(num );
于 2018-10-29T08:00:57.417 回答