एक स्ट्रिंग को Android पर पूर्णांक में परिवर्तित करना


182

मैं एक स्ट्रिंग को पूर्णांक में कैसे बदलूं?

मेरे पास एक टेक्स्टबॉक्स है जिसमें मेरे पास उपयोगकर्ता है:

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

और मान स्ट्रिंग को सौंपा गया है hello

मैं इसे एक पूर्णांक में परिवर्तित करना चाहता हूं ताकि मैं उनके द्वारा टाइप की गई संख्या प्राप्त कर सकूं; इसका उपयोग बाद में कोड में किया जाएगा।

क्या EditTextपूर्णांक प्राप्त करने का कोई तरीका है ? वह बीच के आदमी को छोड़ देगा। यदि नहीं, तो स्ट्रिंग टू पूर्णांक सिर्फ ठीक होगा।


जवाबों:


416

पूर्णांक वर्ग और स्थिर 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 का उपयोग करना अधिक सुरक्षित है?
गैब्रियल फेयर


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;

ठीक वही जो मेरे द्वारा खोजा जा रहा था।
अहमदुल्लाह सैकत

9

नियमित अभिव्यक्ति का उपयोग करना ऐसा करने का सबसे अच्छा तरीका है जैसा कि पहले से ही आशीष साहू द्वारा बताया गया है

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

अपनी स्ट्रिंग को इंट में बदलने का सबसे अच्छा तरीका है:

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

5

आपको फ्लोट करने के लिए स्ट्रिंग को कवर करना चाहिए। यह काम कर रहा है।

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 () .String ());

(1) इनपुट: 12 तब यह काम करेगा .. क्योंकि टेक्स्टव्यू ने इस 12 नंबर को "12" स्ट्रिंग के रूप में लिया है।

(2) इनपुट: "अब्दुल" तब यह एक अपवाद फेंक देगा जो कि नंबरफ़ॉर्मैट अपवाद है। इसलिए इसे हल करने के लिए हमें कोशिश पकड़ने का उपयोग करने की आवश्यकता है जैसा कि मैंने नीचे उल्लेख किया है:

  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)______)के Viewरूप में एक कास्ट करने के लिए उपयोग करेंButton
  3. .GetText() बटन से पाठ प्रविष्टि प्राप्त करने के लिए कॉल करें
  4. .toString()कैरेक्टर वेरिंग को स्ट्रिंग में बदलने के लिए कॉल करें
  5. कॉल .ReplaceAll()के साथ "[\\D]""के साथ" (कुछ नहीं) सभी गैर डिजिट वर्ण को बदलने के लिए
  6. कॉल को Integer.parseInt()पकड़ो और डिजिट-ओनली स्ट्रिंग से एक पूर्णांक लौटाएं।

यह एक लाइन (बस मेरी पसंद) के लिए एक बहुत बड़ा कोड है।
पैट्रिक एम

ऐ, मैं इसे इस तरह से नहीं करूंगा, यह ओपी के "मिडिल मैन को छोड़" टिप्पणी के संदर्भ में अधिक था।
ब्रेट मोयन

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 

और भी तरीके हो सकते हैं, लेकिन यही अब मुझे याद है


कोड के रूप में अपने कोड भागों को चिह्नित करें; यह जवाब को और अधिक पठनीय बना देगा!
यू। विंडल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.