这是我在网上看到的一个例子代码,用途是处理特殊字符,但是,我用的时候发现第8行会出错,第三个双引号会引住后面的语句
第10行也会出一个叫Invalid character constant的错,不知道例子里面是怎么实现的
------解决思路----------------------
例子里没有,不代表这个例子就编译成功并运行了,没有必要纠结于这些东西,了解他的思路就可以了
------解决思路----------------------
package test;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import com.google.common.io.Resources;
public class Test {
public static void main(String[] args) throws IOException {
String str = FileUtils.readFileToString(new File(Resources.getResource("a.txt").getFile()));
System.out.println(string2Json(str));
}
static String string2Json(String s) {
StringBuilder sb = new StringBuilder(s.length() + 20);
sb.append('\"');
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
switch (c) {
case '\"':
sb.append("\\\"");
break;
case '\\':
sb.append("\\\\");
break;
case '/':
sb.append("\\/");
break;
case '\b':
sb.append("\\b");
break;
case '\f':
sb.append("\\f");
break;
case '\n':
sb.append("\\n");
break;
case '\r':
sb.append("\\r");
break;
case '\t':
sb.append("\\t");
break;
default:
sb.append(c);
}
}
sb.append('\"');
return sb.toString();
}
}
a.txt内容
{"name":"Michael","address":
{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
}
运行之后的输出:
"{\"name\":\"Michael\",\"address\":\r\n {\"city\":\"Beijing\",\"street\":\" Chaoyang Road \",\"postcode\":100025}\r\n}"
你找的代码是错误的。