java多了看不见的字符。估计99%的人都不知道。 本帖最后由 parcool 于 2013-03-24 13:37:01 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就算取出了[][a][b][c]如何判断第一个为空???? 强转成int打印出来,然后去查查这个编码代表什么即可 我用的 if(String.valueOf(arr[i]).hashCode() == 65279){ System.out.println("第"+i+"个为非法字符!"); }感觉欠妥 这个奇怪的 character 是 0xFEFF.出现在一个Unicode文件的开头,就是 BOM(Byte Order Mark)同时,在Unicode中它又是 Zero-width no-break space (ZWNBSP)Zero-width 意味着它在表示时,没有width,所以你在一个Unicode应用中看不见它,反而,在非Unicode应用中能看到它,多表示为“?”如何检测?简单地检查 str.charAt(i) == 0xFEFF 就可以了,代码如下:public static void detectBOM(String s) { for (int i=0,l=s.length(); i<l; i++) { if ( s.charAt(i) == 0xFEFF ) { System.out.println("Warning: BOM is detected at " + i + "-th character"); } }} 你应该先trim一下,不然数据不准确的哇~ 这个奇怪的 character 是 0xFEFF.出现在一个Unicode文件的开头,就是 BOM(Byte Order Mark)同时,在Unicode中它又是 Zero-width no-break space (ZWNBSP)Zero-width 意味着它在表示时,没有width,所以你在一个Unicode应用中看不见它,反而,在非Unicode应用中能看到它,多表示为“?”如何检测?简单地检查 str.charAt(i) == 0xFEFF 就可以了,代码如下:Java code?1234567public static void detectBOM(String s) { for (int i=0,l=s.length(); i<l; i++) { if ( s.charAt(i) == 0xFEFF ) { System.out.println("Warning: BOM is detected at " + i + "-th character"); } }} 我只能说你没有看过API 这种问题 都拿出来 如果在eclipse里也要看保存成字符集类型了。 trim一下就好了,何必纠结于这样的问题还有很多大事等你去处理呢 trim()是不行的哈。你试试就知道了。 急!急!!如何验证xml文件的有效性? 解释一下这段代码 java数组可以多次赋值么? 关于Java发布问题 java " . "的作用 一个简单的字符问题,散分 什么是类的构造方法? 请问如何在页面中设置,使当不能显示APPLET时候,自动让用户去下载JAVA PLUG-IN?? 有关学习java的电子图书网址 怎样判断闰年,有原代码吗 java程序中出现的错误请求分析 在线等,真的糊涂了。为什么和视频了编译输出的不一样呢?
就算取出了
[]
[a]
[b]
[c]
如何判断第一个为空????
强转成int打印出来,然后去查查这个编码代表什么即可
我用的
if(String.valueOf(arr[i]).hashCode() == 65279){
System.out.println("第"+i+"个为非法字符!"); }
感觉欠妥
出现在一个Unicode文件的开头,就是 BOM(Byte Order Mark)
同时,在Unicode中它又是 Zero-width no-break space (ZWNBSP)Zero-width 意味着它在表示时,没有width,所以你在一个Unicode应用中看不见它,反而,在非Unicode应用中能看到它,多表示为“?”如何检测?
简单地检查 str.charAt(i) == 0xFEFF 就可以了,代码如下:public static void detectBOM(String s) {
for (int i=0,l=s.length(); i<l; i++) {
if ( s.charAt(i) == 0xFEFF ) {
System.out.println("Warning: BOM is detected at " + i + "-th character");
}
}
}
出现在一个Unicode文件的开头,就是 BOM(Byte Order Mark)
同时,在Unicode中它又是 Zero-width no-break space (ZWNBSP)Zero-width 意味着它在表示时,没有width,所以你在一个Unicode应用中看不见它,反而,在非Unicode应用中能看到它,多表示为“?”如何检测?
简单地检查 str.charAt(i) == 0xFEFF 就可以了,代码如下:
Java code
?
1
2
3
4
5
6
7
public static void detectBOM(String s) {
for (int i=0,l=s.length(); i<l; i++) {
if ( s.charAt(i) == 0xFEFF ) {
System.out.println("Warning: BOM is detected at " + i + "-th character");
}
}
}
还有很多大事等你去处理呢
trim()是不行的哈。你试试就知道了。