Ho qualcosa come "ali123hgj". voglio avere 123 in numero intero. come posso farlo in java?numero di stringa in java
risposta
Utilizza il seguente RegExp (vedi 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
Nota come questo "fondere" le cifre provenienti da diverse parti delle stringhe in un unico numero . Se hai solo un numero in ogni caso, allora funziona ancora. Se si desidera solo il primo numero, allora si può fare qualcosa di simile:
int i = Integer.parseInt("x-42x100x".replaceAll("^\\D*?(-?\\d+).*$", "$1"));
// i == -42
La regex è un po 'più complicato, ma sostituisce in pratica l'intera stringa con la prima sequenza di cifre che esso contiene (con optional segno meno), prima di utilizzare Integer.parseInt
per analizzare il numero intero.
Probabilmente si potrebbe farlo in queste righe:
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)));
}
E 'facilmente adattabile a molteplici gruppo numero pure. Il codice è solo per orientamento: non è stato testato.
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;
ingresso "asg123d ddhd-2222-33sds --- --- --- 222 ss 33dd 234" I risultati di questo ouput [123, -2222, -33, -222, - 33, 234]
Questo è il modo Google Guava #CharMatcher.
String alphanumeric = "12ABC34def";
String digits = CharMatcher.JAVA_DIGIT.retainFrom(alphanumeric); // 1234
String letters = CharMatcher.JAVA_LETTER.retainFrom(alphanumeric); // ABCdef
Se vi interessa soltanto per abbinare le cifre ASCII, utilizzare
String digits = CharMatcher.inRange('0', '9').retainFrom(alphanumeric); // 1234
Se vi interessa soltanto per abbinare le lettere dell'alfabeto latino, utilizzare
String letters = CharMatcher.inRange('a', 'z')
.or(inRange('A', 'Z')).retainFrom(alphanumeric); // ABCdef
- 1. Espressione matematica (stringa) al numero in Java
- 2. Stringa Java (Regex?) Tra combinazione numero/lettera
- 3. Java sostituire stringa con il numero
- 4. (Java) Specificare il numero di bit (lunghezza) durante la conversione del numero binario in stringa?
- 5. Converti numero stringa in numero intero
- 6. Java: come dividere una stringa per un numero di caratteri?
- 7. Tagliare una stringa Java a un numero di carattere
- 8. Converti numero intero in stringa
- 9. Sovraccarico di Java: numero, numero; int, double
- 10. One-liner per contare il numero di occorrenze di String in una stringa [] in Java?
- 11. java numero di telefono convalida
- 12. numero Parse con prefisso positivo/negativo stringa java
- 13. Java analizza un numero in notazione esponenziale
- 14. Java: PrintStream in stringa?
- 15. Come convertire una stringa binaria in un numero intero 10 di base in Java
- 16. Numero di processori in Clojure? Java interop
- 17. apice in stringa Java
- 18. conversione del numero in stringa in lisp
- 19. Converti stringa in numero decimale in rubino
- 20. Avvolgere la stringa dopo un certo numero di caratteri di parola-saggio in Java
- 21. Numero di operatori Java interessante
- 22. Come convertire una stringa numerica in numero (decimale) e numero in stringa
- 23. Come convertire stringa esadecimale in stringa java
- 24. conteggio del numero di occorrenze di stringa
- 25. java Stringa di classe
- 26. Divisione di una stringa/numero ogni n. Carattere/numero?
- 27. Java REGEX per abbinare un numero esatto di cifre in una stringa
- 28. Convertire una stringa in Double - Java
- 29. Come concatenare numero in stringa nella macro?
- 30. Excel vba - converti stringa in numero
Che dire di '" abc123def567ghi "' o '" abcdef "'? – kennytm
Hai sempre 3 caratteri prima del numero o è solo un esempio? – lbedogni
non è solo tre caratteri. È un numero compreso tra 0 o più caratteri. può essere "123", "sdfs", "123fdhf", "fgdkjhgf123" –