如何从字符串转换为整数

时间:2013-02-22 05:04:14

标签: java android

我有一个让我困惑的问题,我想使用EditText的值并将其转换为int,  当启动它在logcat上显示的活动“invalid int” 我使editText的输入值是9位数! 你能帮我找到问题吗?

这是我的代码:

     String texti =  numberi.getText().toString();
     int x = Integer.parseInt(texti);

7 个答案:

答案 0 :(得分:1)

您必须将其保存在long

long x = Long.parseLong(texti);

答案 1 :(得分:1)

如果您的唯一目标是允许用户在EditText中输入数字。然后使用

android:inputType="number"

然后Integer.parseInt(editText.getText().toString());

答案 2 :(得分:1)

你说你在onCreate()中写过这个。所以你必须先检查,文本是否为空:

String texti =  numberi.getText().toString();
long x;
if(texti.trim().length() > 0)
  x = Long.parseLong(texti);

答案 3 :(得分:0)

texti中的整数可能大于Integer.MAX_VALUE值,因此请改用Long

long x = Long.parseLong(texti.trim());

答案 4 :(得分:0)

你的代码是正确的,但为了更好地使用它,

  String texti =  numberi.getText().toString();
  int x = Integer.parseInt(texti.trim());  // Trim the extra spaces, if any.

转换为数字格式时,始终将habbit修剪为trim(),这将阻止NumberFormatException

答案 5 :(得分:0)

将字符串解析为整数:

    Integer.parseInt(<Your EditText>.getText().toString());

答案 6 :(得分:0)

理想情况下,如果您的EditText只接受整数,那么您应该将 inputType 属性设置为:

  • numberSigned

例如。像这样的东西:

<EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editTextCustomerPin"
        android:layout_marginTop="20dp"
        android:inputType="numberSigned"
        android:textSize="16dp" android:hint="@string/enterCustomerPin"
        android:layout_gravity="center_horizontal"/>

现在,在您的活动中,您始终可以:

EditText myEditText = (EditText) findViewById(R.id.editTextCustomerPin);
String editTextContent = myEditText.getText().toString();
if (editTextContent.length() > 0) {
     int num = Integer.parseInt(num);
     //Do your processing
} else {  
     //Show error message, eg. a toast or an alert dialog
}