[java] Android에서 문자열을 정수로 변환

문자열을 정수로 어떻게 변환합니까?

텍스트 상자에 사용자가 숫자를 입력하게하십시오.

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

그리고 값은 문자열에 할당됩니다 hello.

입력 한 숫자를 얻을 수 있도록 정수로 변환하고 싶습니다. 나중에 코드에서 사용됩니다.

EditText정수 를 얻는 방법이 있습니까? 그것은 중간 남자를 건너 뛸 것입니다. 그렇지 않으면 문자열을 정수로하면됩니다.



답변

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);
} 


답변

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


답변

정규식을 사용하십시오.

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

출력 : i = 1234;

첫 번째 숫자 조합이 필요한 경우 아래 코드를 시도해야합니다.

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

출력 : i = 123;


답변

정규식을 사용하십시오.

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;


답변

ashish sahu에서 이미 언급했듯이 정규 표현식을 사용하는 것이 가장 좋은 방법입니다.

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


답변

이 코드는 실제로 작동합니다.

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


답변

문자열을 int로 변환하는 가장 좋은 방법은 다음과 같습니다.

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