Если вам просто нужно сохранить строку без поплавков, вы можете сделать что-то вроде этого:
String str = "asdja#345.23)asd0.87ahsdflj%4.5fdshjk&10.0&1";
Matcher m = Pattern.compile("\\d*\\.?\\d+").matcher(str);
while(m.find()) {
Float f = Float.parseFloat(m.group());
System.out.println(f);
str = str.replace(m.group(), "");
}
System.out.println(str);
Выход:
345.23
0.87
4.5
10.0
1.0
asdja#)asdahsdflj%fdshjk&&
Или, чтобы не плавать в массиве, просто разделить ваш шаблон, как вы делали это раньше:
String str = "asdja#345.23)asd0.87ahsdflj%4.5fdshjk&10.0&1";
Matcher m = Pattern.compile("\\d*\\.?\\d+").matcher(str);
while(m.find()) {
Float f = Float.parseFloat(m.group());
System.out.println(f);
}
String[] strings = str.split("\\d*\\.?\\d+");
System.out.println(Arrays.toString(strings));
Выход:
345.23
0.87
4.5
10.0
1.0
[asdja#, )asd, ahsdflj%, fdshjk&, &]