Java 如何在android中删除浮点值中的字母?

Java 如何在android中删除浮点值中的字母?,java,android,Java,Android,我有这样的问题 在我的文本视图中,Rs.99.99 String val = textview.getText().toString(); 结果::val:Rs.99.99 我用这种方法把它转换成浮点数 float value = Float.parseFloat(val); 我收到NumberFormatException:Rs.99.99无法转换 任何一个向导都可以引导我在将其转换为float之前,您可以执行以下操作 String substring = str.length() >

我有这样的问题

在我的文本视图中,Rs.99.99

String val = textview.getText().toString();
结果::val:
Rs.99.99

我用这种方法把它转换成浮点数

float value = Float.parseFloat(val);
我收到
NumberFormatException
:Rs.99.99无法转换


任何一个向导都可以引导我

在将其转换为float之前,您可以执行以下操作

String substring = str.length() > 2 ? str.substring(str.length() - 3) : str;
你可以这样试试

System.out.println(Float.parseFloat("Rs.99.99".substring(3)));
注意:您需要确保字符串开头始终包含“Rs.

我收到numberFormat异常Rs.99.99无法转换

是的,因为在方法上

Float.parseFloat(String s);
你得到

NumberFormatException -- if the string does not contain a parsable float.
而你的情况并非如此


所以,最好的选择是应用验证,在文本视图中只输入浮点数。

问题出在哪里还不完全清楚(所有导致问题的字符串都是从
Rs.
开始的,还是用户在输入的开头放了其他类型的垃圾)?以下是从字符串中删除所有字符的方法,最多(但不包括)第一个数字:

val = val.replaceFirst("^[^0-9]*", "");

这将查找从字符串开头(第一个
^
)开始的模式的第一个匹配项,该模式由0个或多个非数字(
[^0-9]
)组成。

您需要获取子字符串,然后将其转换为浮点。