如何从字符串中删除摄氏度符号(java)
几个小时以来,我一直试图从下面的字符串中删除摄氏度符号。我看过以前的文章,我发现/u2103是它的unicode表示形式。尽管我试着解开那根绳子,但还是没有运气。以下是我现在拥有的:如何从字符串中删除摄氏度符号(java),java,temperature,replaceall,Java,Temperature,Replaceall,几个小时以来,我一直试图从下面的字符串中删除摄氏度符号。我看过以前的文章,我发现/u2103是它的unicode表示形式。尽管我试着解开那根绳子,但还是没有运气。以下是我现在拥有的: String temp = "Technology=Li-poly;Temperature=23.0 <degree symbol>C;Voltage=3835"; StringBuilder filtered = new StringBuilder(temp.length()); for (
String temp = "Technology=Li-poly;Temperature=23.0 <degree symbol>C;Voltage=3835";
StringBuilder filtered = new StringBuilder(temp.length());
for (int i = 0; i < temp.length(); i++) {
char test = temp.charAt(i);
if (test >= 0x20 && test <= 0x7e) {
filtered.append(test);
}
}
temp = filtered.toString();
temp.replaceAll(" ", "%20");
但这些都不管用
我目前的问题是,过滤字符串的函数会留下一个空格,但是调用replaceAll(“,“%20”)似乎无法识别该空格。ReplaceAll将用%20替换其他空格。这是一个问题:
temp.replaceAll(" ", "%20");
您正在调用replaceAll
,但从未使用结果。字符串是不可变的——任何看起来正在更改内容的方法实际上都会返回不同的字符串。你想要:
temp = temp.replaceAll(" ", "%20");
话虽如此,我们仍然不清楚为什么要替换空格,也不清楚结果字符串有什么问题
您的其他temp.replaceAll
和temp.replaceChar
调用也有同样的问题
当您正在转义反斜杠时,直接替换字符的尝试也将失败-您确实希望:
temp = temp.replace("\u2103", "");
注意使用replace
而不是replaceAll
——后者使用正则表达式,这里根本不需要使用正则表达式。这是一个问题:
temp.replaceAll(" ", "%20");
您正在调用replaceAll
,但从未使用结果。字符串是不可变的——任何看起来正在更改内容的方法实际上都会返回不同的字符串。你想要:
temp = temp.replaceAll(" ", "%20");
话虽如此,我们仍然不清楚为什么要替换空格,也不清楚结果字符串有什么问题
您的其他temp.replaceAll
和temp.replaceChar
调用也有同样的问题
当您正在转义反斜杠时,直接替换字符的尝试也将失败-您确实希望:
temp = temp.replace("\u2103", "");
注意使用
replace
代替replaceAll
——后者使用正则表达式,这里根本不需要使用。也许你可以利用这个功能。也许你可以利用这个功能。你确定它是\u2103
而不是\u00B0
?你确定它是\u2103
而不是\u00B0
?谢谢!这成功了!我不需要双反斜杠,我应该使用replace,而不是replaceAll。谢谢!这成功了!我不需要双反斜杠,我应该使用replace,而不是replaceAll。