java - स्ट्रिंग से अंक निकालें-स्ट्रिंग जावा




string apache-stringutils (10)

आप java.util.Scanner भी उपयोग कर सकते हैं:

new Scanner(str).useDelimiter("[^\\d]+").nextInt()

अंकों को स्ट्रिंग के रूप में प्राप्त करने के लिए आप next() बजाय next() उपयोग कर सकते हैं।

आप Scanner पर hasNextInt() का उपयोग करके संख्या की उपस्थिति की जांच कर सकते हैं।

मेरे पास एक स्ट्रिंग है और मैं स्ट्रिंग में अंकों का (केवल) अनुक्रम निकालना चाहता हूं।

उदाहरण: helloThisIsA1234 नमूना। मुझे १२३४ चाहिए

यह दिया गया है कि अंकों का क्रम केवल एक बार स्ट्रिंग के भीतर ही होगा, लेकिन उसी स्थिति में नहीं।

(जो लोग पूछेंगे, मेरे पास एक सर्वर नाम है और इसके भीतर एक विशिष्ट संख्या निकालने की आवश्यकता है)

मैं अपाचे कमोमन्स से स्ट्रिन्गटिल्स क्लास का उपयोग करना चाहूंगा।

धन्यवाद!


आप str = str.replaceAll("\\D+",""); उपयोग कर सकते हैं str = str.replaceAll("\\D+","");


आप स्ट्रिंग को विभाजित कर सकते हैं और प्रत्येक चरित्र के साथ तुलना कर सकते हैं

public static String extractNumberFromString(String source) {
    StringBuilder result = new StringBuilder(100);
    for (char ch : source.toCharArray()) {
        if (ch >= '0' && ch <= '9') {
            result.append(ch);
        }
    }

    return result.toString();
}

परीक्षण कोड

    @Test
    public void test_extractNumberFromString() {
    String numberString = NumberUtil.extractNumberFromString("+61 415 987 636");
    assertThat(numberString, equalTo("61415987636"));

    numberString = NumberUtil.extractNumberFromString("(02)9295-987-636");
    assertThat(numberString, equalTo("029295987636"));

    numberString = NumberUtil.extractNumberFromString("(02)[email protected]#$%^&*()+_<>?,.:';9295-{}[=]987-636");
    assertThat(numberString, equalTo("029295987636"));
}

इस कोड का उपयोग करें नंबरऑनलाइन में आपका वांछित आउटपुट होगा।

   String str="sdfvsdf68fsdfsf8999fsdf09";
   String numberOnly= str.replaceAll("[^0-9]", "");

एक बहुत ही सरल उपाय, यदि अल्पविराम द्वारा अलग किया जाता है या यदि अल्पविराम द्वारा अलग नहीं किया जाता है

public static void main(String[] args) {

    String input = "a,1,b,2,c,3,d,4";
    input = input.replaceAll(",", "");

    String alpha ="";
    String num = "";

    char[] c_arr = input.toCharArray();

    for(char c: c_arr) {
        if(Character.isDigit(c)) {
            alpha = alpha + c;
        }
        else {
            num = num+c;
        }
    }

    System.out.println("Alphabet: "+ alpha);
    System.out.println("num: "+ num);

}

बस एक पंक्ति:

int value = Integer.parseInt(string.replaceAll("[^0-9]", ""));

मैंने एक ही मुद्दे के लिए एक JUnit टेस्ट क्लास (अतिरिक्त ज्ञान / जानकारी के रूप में) बनाई है। आशा है कि आपको यह मददगार लगेगा।

   public class StringHelper {
    //Separate words from String which has gigits
        public String drawDigitsFromString(String strValue){
            String str = strValue.trim();
            String digits="";
            for (int i = 0; i < str.length(); i++) {
                char chrs = str.charAt(i);              
                if (Character.isDigit(chrs))
                    digits = digits+chrs;
            }
            return digits;
        }
    }

और JUnit टेस्ट मामला है:

 public class StringHelperTest {
    StringHelper helper;

        @Before
        public void before(){
            helper = new StringHelper();
        }

        @Test
    public void testDrawDigitsFromString(){
        assertEquals("187111", helper.drawDigitsFromString("TCS187TCS111"));
    }
 }

यदि आपके पास प्रतीक हैं और आप सिर्फ नंबर चाहते हैं तो इस तरीके को आजमाएँ:

    String s  = "@##9823l;Azad9927##$)(^738#";
    System.out.println(s=s.replaceAll("[^0-9]", ""));
    StringTokenizer tok = new StringTokenizer(s,"`[email protected]#$%^&*()-_+=\\.,><?");
    String s1 = "";
    while(tok.hasMoreTokens()){
        s1+= tok.nextToken();
    }
    System.out.println(s1);

        String line = "This order was32354 placed for QT ! OK?";
        String regex = "[^\\d]+";

        String[] str = line.split(regex);

        System.out.println(str[1]);

   `String s="as234dfd423";
for(int i=0;i<s.length();i++)
 {
    char c=s.charAt(i);``
    char d=s.charAt(i);
     if ('a' <= c && c <= 'z')
         System.out.println("String:-"+c);
     else  if ('0' <= d && d <= '9')
           System.out.println("number:-"+d);
    }

उत्पादन: -

number:-4
number:-3
number:-4
String:-d
String:-f
String:-d
number:-2
number:-3




string-utils