فقط أعطيك سلسلة تحتوي على أرقام ، مثل:
String S = "Eert343DFG56756DTRY66FGGG89DFGF" ؛
فكيف نستخرج الأرقام؟ هناك تقريبًا الطرق التالية ، والتعبيرات العادية ، وفئات التجميع ، والأساليب التي توفرها فئات السلسلة.
1 الطرق المقدمة من فئة السلسلة:
تمرين اختبار الحزمة ؛ استيراد java.util.*؛ الطبقة العامة get_stringnum {/***2016.10.25*/public static void main (string [] args) {string str = "love23next234csdn3423javaeye" ؛ i = 0 ؛ i <str.length () ؛ i ++) {if (str.charat (i)> = 48 && str.charat (i) <= 57) {str2+= str.charat (i) ؛}}} system.out.println (str2) ؛}}} الإخراج: 232343423هذه الطريقة لها عيب واضح ، ويمكنها فقط استخراج جميع الأرقام معًا ، ولكن ليس بشكل منفصل. بالطبع ، يمكن أيضًا تحسينه. يمكن للأصدقاء المهتمين تجربته.
2 تعبيرات منتظمة
استيراد java.util.*؛ import java.util.regex.matcher ؛ استيراد java.util.regex.pattern ؛ الفئة العامة get_stringnum {/***2016.10.25*/public static void main (string [] regex = "[^0-9]" ؛ نمط p = pattern.compile (regex) ؛ matcher m = p.matcher (a) ؛ System.out.println (M.Replaceall (""). trim ()) ؛}} الإخراج: 232343423النمط ، Matcher هو فئتان في حزمة برامج java.util.regex. يمكنك التحقق من واجهة برمجة التطبيقات للاستخدام المحدد. أيضا ، لا يمكن استخراج الأرقام بشكل فردي.
3 مكتبة فئة التجميع
استيراد java.util.*؛ استيراد java.util.regex.matcher ؛ استيراد java.util.regex.pattern ؛ الفئة العامة get_stringnum {/***2016.10.25*/public static void main (] ArrayList <String> () ؛ pattern p = pattern.compile ("[^0-9]") ؛ matcher m = p.matcher (a) ؛ string result = m.replaceall ("") ؛ for (int i = 0 ؛ i <result.length () ؛ i ++) {digitlist.add (result.substring (i ، i+1)) ؛} system.out.println (digitlist) ؛}} الإخراج: [2 ، 3 ، 2 ، 3 ، 4 ، 3 ، 4 ، 2 ، 3] نفس الفكرة:
استيراد java.Util.*؛ استيراد java.util.regex.matcher ؛ استيراد java.util.regex.pattern ؛ الفئة العامة get_stringnum {/***2016.10.25*/public static void main (string) {string a = "love23next234csdn34233jaeeye" ؛ قائمة <Tring> ss = new ArrayList <String> () ؛ لـ (String sss: s.replaceall ("[^0-9]" ، "،"). split ("،")) {if (sss.length ()> 0) ss.add (ss) ؛ } system.out.print (ss) ؛ }} الإخراج: [2 ، 3 ، 2 ، 3 ، 4 ، 3 ، 4 ، 2 ، 3]من الواضح أنه باستخدام التعبيرات العادية ، يمكننا استخراج الأرقام بشكل منفصل.
هناك أيضًا إجابة للعثور عليها من خلال البحث عن المستندات ، على النحو التالي:
/ ** *احصل على الرقم من نص السلسلة *@param text *@return */ publicStatic List <Long> getDigit (نص سلسلة) {LIST <LONG> DIGITLIST = جديد ARRAYLIST <LONG> () ؛ نمط p = pattern.compile ("(// d+)") ؛ matcher m = p.matcher (text) ؛ بينما (m.find ()) {string find = m.group (1) .ToString () ؛ digitlist.add (long.valueof (find)) ؛ } return digitlist ؛ }طريقتان الحكم اللذين يتطابقان باستخدام التعبيرات العادية على النحو التالي ؛
// تحديد ما إذا كانت جميع الأوتار هي الأرقام المنطقية العامة (strnum strnum) {return strnum.matches ("[0-9] {1 ،}") ؛ } // تحديد ما إذا كانت جميع الأوتار هي الأرقام المنطقية العامة (سلسلة strnum) {pattern pattern = pattern.compile ("[0-9] {1 ،}") ؛ Matcher Matcher = pattern.matcher ((charsequence) strnum) ؛ إرجاع matcher.matches () ؛ }. Matcher Matcher = pattern.matcher (content) ؛ بينما (matcher.find ()) {return matcher.group (0) ؛ } يعود ""؛ }. Matcher Matcher = pattern.matcher (content) ؛ بينما (matcher.find ()) {return matcher.group (0) ؛ } يعود ""؛ }ما سبق هو المحتوى الكامل للمثال البسيط لأرقام استخراج Java من الأوتار التي جلبها لك المحرر. آمل أن يتمكن الجميع من دعم wulin.com أكثر ~