|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jun 2005
Messaggi: 99
|
[JAVA] Numeri da una stringa
Ciao a tutti.
C'è un modo "veloce" per estrarre dei numeri contenuti in una stringa? Non intendo però solo numeri ad una cifra, anche a più cifre. Ad esempio, avendo una stringa del genere: ds21#.2as123fd0998ska dovrei memorizzare in un array di int[] i numeri seguenti: 21, 2, 123, 998. Grazie anticipatamente. Ciao, Francesco |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jun 2005
Messaggi: 99
|
Mi è stato suggerito altrove di utilizzare le espressioni regolari.
Posto qui per completezza il metodo che ho scritto/implementato: Codice:
import java.util.regex.*; import java.util.ArrayList; Codice:
public ArrayList<Integer> extractingNumbers(String s) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(s);
while (m.find()) {
numbers.add(Integer.parseInt(m.group()));
}
if(numbers.size() > 0) {
return numbers;
} else {
ArrayList<Integer> blankArray = new ArrayList<Integer>();
blankArray.add(-1);
return blankArray;
}
}
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
puoi anche scriverlo così, ha lo stesso significato e, almeno per me, mi sembra più chiaro:
Codice:
public ArrayList<Integer> extractingNumbers(String s) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(s);
while (m.find()) {
numbers.add(Integer.parseInt(m.group()));
}
if(numbers.size() <= 0) {
numbers.add(-1);
}
return numbers;
}
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:26.


















