【发布时间】:2011-08-31 13:29:27
【问题描述】:
几个小时以来,我一直在尝试从以下字符串中删除摄氏度符号。我查看了以前的帖子,发现 /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");
生成的字符串如下所示: 技术=锂聚合物;温度=23.0 C;
我也试过了
temp.replaceAll("\\u2103", "");
temp.replaceChar((char)0x2103, ' ');
但这些都不起作用。
我目前的问题是过滤字符串的函数会留下一个空格,但对 replaceAll(" ", "%20") 的调用似乎无法识别该特定空间。 ReplaceAll 将用 %20 替换其他空格。
【问题讨论】:
-
你确定是
\u2103而不是\u00B0?
标签: java temperature replaceall