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


182

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

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

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

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

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

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


답변:


417

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
아래에서 마누엘의 방법을 사용하는 것은 어떻습니까? valueOf보다 parseInt를 사용하는 것이 더 안전합니까?
Gabriel Fair

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

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;


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;

정확히 내가 찾던 것.
Ahamadullah Saikat

9

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

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

8

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

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

6

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

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

5

플로팅하려면 String을 숨겨야합니다. 작동 중입니다.

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

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

tv.setText(result); 

5

다음을 사용하여 문자열을 정수로 구문 분석 할 수 있습니다.

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

(1) 입력 : 12 그러면 작동합니다. textview 에서이 12 숫자를 "12"문자열로 사용했기 때문입니다.

(2) 입력 : "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


4

한 줄로 할 수도 있습니다.

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

실행 순서에서 읽기

  1. 를 사용하여보기를 잡아 findViewById(R.id.button1)
  2. 사용 ((Button)______)캐스팅 ViewA와Button
  3. .GetText() 버튼에서 텍스트 입력을 받기 위해 전화
  4. .toString()문자 변수를 문자열로 변환하기 위해 호출
  5. 전화 .ReplaceAll()"[\\D]"(아무것도) ""모든 비 자리의 문자를 대체하는
  6. Integer.parseInt()grab을 호출 하고 Digit 전용 문자열에서 정수를 리턴하십시오.

그것은 한 줄에 대한 엄청나게 많은 코드입니다.
Patrick M

그렇다. 나는 그런 식으로도하지 않을 것이다. OP의 "중간자 건너 뛰기"의견에 대한 언급이었다.
Brett Moan

3

훨씬 간단한 방법은 다음과 같은 decode방법 을 사용하는 것입니다 Integer.

int helloInt = Integer.decode(hello);


2

첫 번째 방법을 변환하는 다섯 가지 방법이 있습니다.

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 

다른 방법이있을 수 있지만 그게 내가 기억하는 것입니다


코드 부분을 코드로 표시하십시오. 대답을 더 읽기 쉽게 만듭니다!
U. Windl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.