我有一个这样的字符串
温度:38.6°C(98.6°F)
最终希望将其转换为以下外观
98.6 \ u00b0F(37.0 \ u00b0C)
我想出了所有使这成为解决方案的解决方案吗?或其他一些字符,我想做的是在其中放置一个unicode解决方案的字符串。
我遇到或尝试过的所有解决方案似乎都不起作用。
先谢谢了。
答案 0 :(得分:2)
只需遍历字符串的字符,并用Unicode转义符替换非ASCII字符:
$result = call_user_func_array('array_map', array(
'boolval', array(
"1",
'0',
true,
false
)
));
输出
String s = "Temperature: 98.6°F (37.0°C)";
StringBuilder buf = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c >= 0x20 && c <= 0x7E) // visible ASCII character
buf.append(c);
else
buf.append(String.format("\\u%04x", (int) c));
}
String t = buf.toString();
System.out.println(t);
在Java 9+中,它甚至更简单:
Temperature: 98.6\u00b0F (37.0\u00b0C)