2010-04-13 17 views
5

मैं अपने nirc संख्या में कुंजी रखना चाहता हूं उदा। S1234567I और फिर individualy 1234567 डाल आदि indiv1charAt(1) के रूप में के रूप में एक पूर्णांक, indiv2charAt(2) के रूप में, indivcharAt(3) के रूप में, के रूप में हालांकि, जब मैं नीचे दिए गए कोड का उपयोग करें, मैं भी पहले नंबर बाहर निकलना नहीं कर पा रहे? कोई उपाय?जावा: charAt int में कनवर्ट करें?

Scanner console = new Scanner(System.in); 
    System.out.println("Enter your NRIC number: "); 

    String nric = console.nextLine(); 

    int indiv1 = nric.charAt(1); 
    System.out.println(indiv1); 

उत्तर

15

आप हो रही हो जाएगा 49, 50, 51 आदि बाहर - उन लोगों के लिए वर्ण '1', '2', '3' आदि

आप तो पता यूनिकोड कोड अंक हैं है कि वे पश्चिमी अंक हो जाएगा, तो आप सिर्फ घटा सकते '0':

int indiv1 = nric.charAt(1) - '0'; 

हालांकि, अगर आप ऐसा केवल तभी कर देना चाहिए जब आपने पहले से ही कहीं मान्य कर दिया है कि स्ट्रिंग सही स्वरूप का है - आप अन्यथा ' नकली डेटा के साथ खत्म हो जाएगा - उदाहरण के लिए, 'ए' वापस लौटना होगा 17 त्रुटि उत्पन्न करने के बजाय।

बेशक, एक विकल्प मूल्यों को लेना है और फिर जांचें कि परिणाम 0-9 की सीमा में हैं। एक विकल्प का उपयोग करना है:

int indiv1 = Character.digit(nric.charAt(1), 10); 

यह चरित्र -1 होगा यदि चरित्र उचित अंक नहीं है।

मुझे यकीन नहीं है कि यह बाद वाला दृष्टिकोण गैर-पश्चिमी अंकों को कवर करेगा - पहला निश्चित रूप से नहीं होगा - लेकिन ऐसा लगता है कि यह आपके मामले में कोई समस्या नहीं होगी।

-1

int indiv1 = Integer.parseInt(nric.charAt(1));

+1

Integer.parseInt एक स्ट्रिंग है, न कि चार लेता है। –

+0

हे ओप्स Integer.parseInt (Character.toString (nric.charAt (1))); : पी या Integer.parseInt (nric.substr (1, 1)); लेकिन गंभीरता से, बस जॉन स्कीट के जवाब के साथ जाओ। – jonathanasdf

0
try { 
    int indiv1 = Integer.parseInt ("" + nric.charAt(1)); 
    System.out.println(indiv1); 
} catch (NumberFormatException npe) { 
    handleException (npe); 
} 
0

मैं जानता हूँ कि प्रश्न int करने के लिए चार लेकिन उल्लेख के चार में नकारात्मक है क्योंकि वहाँ भी इस लायक))

JavaHungry से आप पूर्णांक के लिए ऋणात्मक संख्याओं ध्यान दें चाहिए अगर तुम न wana चरित्र का उपयोग के बारे में है।

पूर्णांक में कनवर्ट कर रहा स्ट्रिंग: छद्म कोड

1. Start number at 0 

    2. If the first character is '-' 
        Set the negative flag 
        Start scanning with the next character 
      For each character in the string 
        Multiply number by 10 
        Add(digit number - '0') to number 
      If negative flag set 
        Negate number 
        Return number 

सार्वजनिक वर्ग StringtoInt {

public static void main (String args[]) 
{ 
    String convertingString="123456"; 
    System.out.println("String Before Conversion : "+ convertingString); 
    int output= stringToint(convertingString); 
    System.out.println(""); 
    System.out.println(""); 
    System.out.println("int value as output "+ output); 
    System.out.println(""); 
} 




    public static int stringToint(String str){ 
     int i = 0, number = 0; 
     boolean isNegative = false; 
     int len = str.length(); 
     if(str.charAt(0) == '-'){ 
      isNegative = true; 
      i = 1; 
     } 
     while(i < len){ 
      number *= 10; 
      number += (str.charAt(i++) - '0'); 
     } 
     if(isNegative) 
     number = -number; 
     return number; 
    } 
} 
संबंधित मुद्दे