用Java解析Google货币转换器中的奇怪数字
我试图解析从返回的值。 问题是,一个27 458的号码里面有空格,我不能删除那个空格! parseFloat也会因为这个空格而拒绝这个数字。用Java解析Google货币转换器中的奇怪数字,java,Java,我试图解析从返回的值。 问题是,一个27 458的号码里面有空格,我不能删除那个空格! parseFloat也会因为这个空格而拒绝这个数字。 有人能解决这个问题吗?如果你先去掉这个空间怎么办 String resultString = subjectString.replaceAll("\\s", ""); 然后解析它?将它作为一个字符串,然后执行替换操作,将空白替换为零。我可以粘贴代码,但我会从这里复制它:请使用以下代码调整字符串: private String correct(String
有人能解决这个问题吗?如果你先去掉这个空间怎么办
String resultString = subjectString.replaceAll("\\s", "");
然后解析它?将它作为一个字符串,然后执行替换操作,将空白替换为零。我可以粘贴代码,但我会从这里复制它:请使用以下代码调整字符串:
private String correct(String src) {
boolean found = false;
String tag = "";
for (int i = 0; i < src.length(); i++) {
char c = src.charAt(i);
if (Character.isDigit(c)) {
tag += c;
} else {
if (found) {
break;
} else {
found = true;
tag += ".";
}
}
}
return tag;
}
私有字符串正确(字符串src){
布尔值=false;
字符串标签=”;
对于(int i=0;i
这将在遇到数字时添加数字,如果它不是数字,则将进行测试以确定它是否是
标记。如果是,它将附加它,否则跳过并继续添加数字,直到没有更多的数字可添加为止
private String correct(String src) {
String tag = "";
for (int i = 0; i < src.length(); i++) {
char c = src.charAt(i);
if (Character.isDigit(c)) {
tag += c;
} else if (c == '.'){
tag += '.';
}
}
return tag;
}
私有字符串正确(字符串src){
字符串标签=”;
对于(int i=0;i
@nKognito如果删除所有空格,您的号码中怎么会有空格?:我不想把死人挖出来,但我正好碰到了这个。这是因为空间实际上不是一个空间。使用十六进制查看器,您会注意到它实际上是“002000”。此外,上面标记为答案的代码将无法正确解析字符串,如果假设您收到“1123.3445”@MikeMcMahon,那么解决方案是什么??如何删除特殊字符� 从回答中?@Peter看到我下面的解决方案,它与上面的解决方案略有不同(顺便说一句,这对我根本不起作用)!(当我们找到
时,我不会打断,因为我们需要后面的数字)谢谢@MikeMcMahon。。但我用这一行代码来替换特殊字符�.. result=result.replaceAll(“\uFFFD”,“,”);这永远不会使它成为字符串的完整长度(如果它提前遇到小数点或任何其他非数字字符),并且只检索小数点后的一个数字。。。