Ciao, se vuoi cercare delle cose all'interno di una stringa puoi usare la classe Matcher, in particolare il metodo find():
String s = "3.141a5 42 23 wasd 3.1lol6 9.18 ";
Pattern pattern = Pattern.compile("[a-zA-Z]+");
Matcher matcher = pattern.matcher(s);
while (matcher.find()) {
System.out.println(s.substring(matcher.start(), matcher.end()));
}
In questo modo ti verranno stampate tutte e sole le porzioni di s che contengono almeno una lettera, ovvero:
a
wasd
lol
.
Se invece ti interessa prendere il singolo carattere puoi modificare la sola regex, oppure semplificare un pochino il codice:
String s = "3.141a5 42 23 wasd 3.1lol6 9.18 ";
Pattern pattern = Pattern.compile("[a-zA-Z]");
Matcher matcher = pattern.matcher(s);
while (matcher.find()) {
System.out.println(s.charAt(matcher.start()));
}