Просто дайте вам строку, содержащую числа, такие как:
String S = "EERT343DFG56756DTRY66FGGG89DFGF";
Итак, как мы извлекаем цифры? Существуют примерно следующие методы, регулярные выражения, классы сбора и методы, предоставленные классами строк.
1 методы, предоставленные классом строки:
Упражнение для испытаний пакетов; импорт java.util.*; public class get_stringnum {/***2016.10.25*/public static void main (string [] args) {string str = "love23next234csdn3423javaeye"; str = str.trim (); String str2 = "; if (str! i = 0; i <str.length (); i ++) {if (str.charat (i)> = 48 && str.charat (i) <= 57) {str2+= str.charat (i);}}} system.out.println (str2);}} output: 232343423Этот метод имеет очевидный недостаток, он может только извлекать все числа вместе, но не отдельно. Конечно, это также можно улучшить. Заинтересованные друзья могут попробовать.
2 регулярные выражения
Импорт java.util.*; import java.util.regex.matcher; import java.util.regex.pattern; открытый класс get_stringnum {/***2016.10.25*/public void main (string [] args) {String a = "love23next234csdn3423. regex = "[^0-9]"; Шаблон p = pattern.compile (regex); Matchter m = p.matcher (a); System.out.println (M.Replaceall (""). Trim ());}} Выход: 232343423Паттерн, Matcher - это два класса в программном пакете Java.util.regex. Вы можете проверить API для конкретного использования. Кроме того, числа не могут быть извлечены индивидуально.
3 Библиотека класса коллекции
Импорт java.util.*; import java.util.regex.matcher; import java.util.regex.pattern; открытый класс get_stringnum {/***2016.10.25*/public void main (string [] args) {String a = "love23next234csdn3423. ArrayList <String> (); pattern p = pattern.compile ("[^0-9]"); Matcher m = p.matcher (a); string result = m.Replaceall (""); для (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.*; import java.util.regex.matcher; import java.util.regex.pattern; открытый класс get_stringnum {/***2016.10.25*/public void main (string [] args) {String a = "love23next234csdn3423. List <string> ss = new ArrayList <string> (); for (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 (String Text) {list <long> digitlist = new ArrayList <lond> (); Шаблон p = pattern.compile ("(// d+)"); Matchter m = p.matcher (текст); while (m.find ()) {string find = m.group (1) .toString (); digitlist.add (long.valueof (find)); } return DigitList; }Два метода суждения, которые соответствуют с использованием регулярных выражений, заключаются в следующем;
// Определите, являются ли все строки числа Public Boolean Isdigit (String Strnum) {return strnum.matches ("[0-9] {1,}"); } // Определите, являются ли все строки, номеры публично логический iSdigit (String strnum) {pattern = pattern.compile ("[0-9] {1,}"); Matchter Matcher = pattern.matcher ((chareSequence) strnum); return Matcher.matches (); } // перехватывать номер public String getNumbers (String Content) {pattern = pattern.compile ("// d+"); Matcher Matcher = pattern.matcher (content); while (matcher.find ()) {return matcher.group (0); } возвращаться ""; } // Intercept No-Number Public String SplitNotNumber (String Content) {pattern = pattern.compile ("// d+"); Matcher Matcher = pattern.matcher (content); while (matcher.find ()) {return matcher.group (0); } возвращаться ""; }Выше приведено все содержание простого примера извлечения явов из строк, принесенных вам редактором. Я надеюсь, что каждый сможет поддерживать wulin.com больше ~