У меня есть что-то вроде «ali123hgj». Я хочу иметь 123 в целых числах. как я могу сделать это в java?номер из строки в java
ответ
Используйте следующую RegExp (см http://java.sun.com/docs/books/tutorial/essential/regex/):
\d+
By:
final Pattern pattern = Pattern.compile("\\d+"); // the regex
final Matcher matcher = pattern.matcher("ali123hgj"); // your string
final ArrayList<Integer> ints = new ArrayList<Integer>(); // results
while (matcher.find()) { // for each match
ints.add(Integer.parseInt(matcher.group())); // convert to int
}
int i = Integer.parseInt("blah123yeah4yeah".replaceAll("\\D", ""));
// i == 1234
Обратите внимание, как это будет "сливать" цифры из разных частей строк вместе в один номер , Если у вас есть только один номер, это все равно работает. Если вы хотите только первый номер, то вы можете сделать что-то вроде этого:
int i = Integer.parseInt("x-42x100x".replaceAll("^\\D*?(-?\\d+).*$", "$1"));
// i == -42
Регулярного выражения является немного более сложным, но это в основном заменяет всю строку с первой последовательностью цифр, которые она содержит (с опциональным минус), прежде чем использовать Integer.parseInt
для разбора в целое число.
Вы могли бы это сделать вдоль этих линий:
Pattern pattern = Pattern.compile("[^0-9]*([0-9]*)[^0-9]*");
Matcher matcher = pattern.matcher("ali123hgj");
boolean matchFound = matcher.find();
if (matchFound) {
System.out.println(Integer.parseInt(matcher.group(0)));
}
Это легко адаптируются к многократному номер группы, а также. Код предназначен только для ориентации: он не был протестирован.
int index = -1;
for (int i = 0; i < str.length(); i++) {
if (Character.isDigit(str.charAt(i)) {
index = i; // found a digit
break;
}
}
if (index >= 0) {
int value = String.parseInt(str.substring(index)); // parseInt ignores anything after the number
} else {
// doesn't contain int...
}
public static final List<Integer> scanIntegers2(final String source) {
final ArrayList<Integer> result = new ArrayList<Integer>();
// in real life define this as a static member of the class.
// defining integers -123, 12 etc as matches.
final Pattern integerPattern = Pattern.compile("(\\-?\\d+)");
final Matcher matched = integerPattern.matcher(source);
while (matched.find()) {
result.add(Integer.valueOf(matched.group()));
}
return result;
Входной "asg123d ddhd-2222-33sds --- --- 222 сс --- 33dd 234" результаты в этом выводе [123, -2222, -33, -222, - 33, 234]
Это путь Google Guava #CharMatcher.
String alphanumeric = "12ABC34def";
String digits = CharMatcher.JAVA_DIGIT.retainFrom(alphanumeric); // 1234
String letters = CharMatcher.JAVA_LETTER.retainFrom(alphanumeric); // ABCdef
Если вас интересует только, чтобы соответствовать ASCII цифр, используйте
String digits = CharMatcher.inRange('0', '9').retainFrom(alphanumeric); // 1234
Если вы только заботиться, чтобы соответствовать буквы латинского алфавита, используйте
String letters = CharMatcher.inRange('a', 'z')
.or(inRange('A', 'Z')).retainFrom(alphanumeric); // ABCdef
- 1. Извлечь научный номер из строки в Java
- 2. Как извлечь номер из строки в Java?
- 3. goto номер строки строки в Java
- 4. Получить номер строки из узла xml - java
- 5. Java Сканер номер Достаньте из строки
- 6. Java: необходимо извлечь номер из строки
- 7. Получить номер из строки (RegExp)
- 8. Номер из строки LoadRunner
- 9. Получить номер из строки
- 10. Mysql - номер из строки
- 11. Инкрементный номер из строки
- 12. Возвращает номер строки из
- 13. Получить номер из строки
- 14. Номер извлечения из строки
- 15. Разберите номер из строки
- 16. Отдельный номер из строки
- 17. Получить текущий номер строки Java
- 18. построить уникальный номер для строки в java
- 19. Как получить индексный номер строки в Java?
- 20. Повторяющийся номер в java до следующей строки
- 21. Слово частота и номер строки в Java
- 22. Как извлечь только номер из строки в java?
- 23. Как получить номер части из строки в java?
- 24. Как узнать номер строки из смещения в java
- 25. Как получить номер месяца из строки месяца в Java?
- 26. получить номер строки со строкой («Номер строки») из textarea?
- 27. выберите номер из списка строки
- 28. Удалить номер форматирование из строки
- 29. JavaScript получить номер из строки
- 30. найти номер Zip из строки
Как насчет '' abc123def567ghi '' или '' abcdef "'? – kennytm
У вас всегда есть 3 символа перед номером, или это просто пример? – lbedogni
Это не только три символа .it - это номер от 0 до более символов. это могут быть «123», «sdfs», «123fdhf», «fgdkjhgf123», –