2013-09-20 4 views
2

Может ли кто-нибудь помочь мне разбить строку на номер Например: «Мне нужно 5000 очков» - это строка, которую я хочу «5000» из этой строки.Разделить строку по номеру

Я перепробовал много способов, как:

//split the string by RegExp: 
String array = string.split(".*\\d.") 

Я получаю выход, но его не то, что я ожидал

Выход:

array[0] = "" 
array[1] ="points 

Может кто-нибудь помочь мне найти правильное решение ?

+1

не разделенную строки, но выполнить поиск РегВыра –

+0

@rebeliagamer. Это вопрос C#. OP не имеет проблемы с самим регулярным выражением, но как его использовать. –

+0

Он должен быть 'String []' – Elazar

ответ

5
Pattern pattern = Pattern.compile("\\d+"); 
Matcher matcher = pattern.matcher("I Need 5000 points"); 
while (matcher.find()) {    
    System.out.println(matcher.group()); 
} 
+0

Спасибо за ваш ответ скорости. Прекрасно работает – Satish

+0

. Добро пожаловать :) –

2

вы хотите разделить на всем, что не номер:

String array[] = string.split("\\D+"); 
+0

Спасибо за ответ ура – Satish

+0

он должен быть массивом – Elazar

+0

Спасибо ... скопируйте/вставьте ошибку. Hmmmm – rolfl

1
 String str="I Need 5000 points"; 

     Pattern p = Pattern.compile("\\d)"); 
     Matcher m = p.matcher(str); 
     while(m.find()) 
     { 
      System.out.println(m.group()); 
     } 
1

Try это.

Pattern p=Pattern.compile("\\d+"); 
    Matcher m=p.matcher(yourString); 
    while(m.find()){ 
    System.out.println(m.group()); 
} 
1

Не могли бы вы попробовать это (следует также работать с цифровыми номерами):

echo preg_replace("/[^0-9,.]/", "", "I Need 5000 points"); 
0

В общем, вы можете попытаться разделить на
str.matches("-?\\d+(\\.\\d+)?"); //match a number with optional '-' and decimal.

Хотя это не так, что вы попробовали. Получите строку [] на myString.split("\\s+");, а затем проверьте, что разделенная строка содержит любое число или нет.

Будьте осторожны с указанным выше механизмом RegEx, поскольку он будет терпеть неудачу, если вы используете нелатинские (то есть от 0 до 9) цифры. Например, арабские цифры.

Вы можете посмотреть здесь - How to check if a String is numeric in Java

-1
import java.util.regex.*; 

String myString = "I Need 5000 points"; 
Pattern pattern = Pattern.compile("\\d+"); 
Matcher matcher = pattern.matcher(myString); 
if(matcher.find())    
    System.out.println(matcher.group(0)); 
Смежные вопросы