从android字符串删除空字符
在我的android项目中,我想从文件中读取数据结构。一个字段假设'姓名',最多有32个字符。大多数时间'名称'字段包含小于最大限制。一些不需要的字符(我认为'空')充满了数据。我用'修剪'方法删除,但没有发生。我只需要有效的数据进行处理,我该如何解决这个问题?从android字符串删除空字符
使用正则表达式替换非打印字符。
String string=line.replaceAll("[^\\p{Print}]","");
您的解决方案最简单,并且正在运行,谢谢 – Riskhan 2011-12-28 11:47:15
如果字符0的字符串末尾附加,只要找到在串中的第一指标,串到这个指数:
int nullCharIndex = s.indexOf((char) 0);
if (nullCharIndex >= 0) {
s = s.substring(0, nullCharIndex);
}
如果你有一个完全为null的名字字段,只需检查字符串== null。
如果要分析一个字符串,其中包含例如空间仅仅指刚使用:
String string = "a b c d";
string.replaceAll(" ","");
这可以用于所有其他字符。请注意,您必须为此使用RegEx。
您的示例演示了他的代码中可能存在的问题。字符串是不可变的,所以你应该将replaceAll的结果赋给某个String。 – MByD 2011-12-28 12:01:56
检查字符的ASCII值是否大于0,检查字符是否为空
如何从Android的字符串
String str = "abc def";
StringBuffer sb = new StringBuffer();
byte[] byteArray = str.getBytes();
for(byte bytedata:byteArray){
if(bytedata>0){
sb.append((char)bytedata);
}
}
str = sb.toString();
System.out.println("..."+str);
使用toCharArray而不是getBytes。在任何使用UTF-8作为默认编码且任何字符大于127的平台上,您的解决方案都会附加不正确的值。 – njzk2 2011-12-28 12:36:50
存储中删除无效数据作为XML或JSON和使用android解析器来读取它。 – njzk2 2011-12-28 11:41:32
数据来自硬件系统,其格式是原始的 – Riskhan 2011-12-28 11:44:35