Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从字符串中删除摄氏度符号(java)_Java_Temperature_Replaceall - Fatal编程技术网

如何从字符串中删除摄氏度符号(java)

如何从字符串中删除摄氏度符号(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 (

几个小时以来,我一直试图从下面的字符串中删除摄氏度符号。我看过以前的文章,我发现/u2103是它的unicode表示形式。尽管我试着解开那根绳子,但还是没有运气。以下是我现在拥有的:

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。