gpt4 book ai didi

java - 从字符串中删除不可打印字符的更好方法是什么

转载 作者:行者123 更新时间:2023-12-01 19:15:36 25 4
gpt4 key购买 nike

我正在从 xml 读取数据。当我检查 Eclipse 控制台时,我发现我正在通过一些方框获取整个数据。 示例 如果 Excel 工作表中有 123,我会得到带有一些方框的 123。我使用trim()来避免这样的事情,但没有成功,因为trim()方法只修剪空格。但我发现这些字符的 ASCII 值是 -17、-20 .. 我不想只修剪空格,我也想修剪那些方框

所以我使用了以下方法来修剪这些字符,并且成功了。

修剪字符串更合适的方式是什么

修剪字符串

String trimData(String accessNum){
StringBuffer sb = new StringBuffer();
try{
if((accessNum != null) && (accessNum.length()>0)){
// Log.i("Settings", accessNum+"Access Number length....."+accessNum.length());
accessNum = accessNum.trim();
byte[] b = accessNum.getBytes();
for(int i=0; i<b.length; i++){
System.out.println(i+"....."+b[i]);
if(b[i]>0){
sb.append((char)(b[i]));
}
}
// Log.i("Settigs", accessNum+"Trimming....");
}}catch(Exception ex){

}
return sb.toString();
}

最佳答案

已编辑

使用规范化器(从 java 6 开始)

public static final Pattern DIACRITICS_AND_FRIENDS 
= Pattern.compile("[\\p{InCombiningDiacriticalMarks}\\p{IsLm}\\p{IsSk}]+");


private static String stripDiacritics(String str) {
str = Normalizer.normalize(str, Normalizer.Form.NFD);
str = DIACRITICS_AND_FRIENDS.matcher(str).replaceAll("");
return str;
}

herehere是完整的解决方案。

如果您只想从字符串中删除所有不可打印的字符,请使用

rawString.replaceAll("[^\\x20-\\x7e]", "")

引用号:replace special characters in string in javaHow to remove high-ASCII characters from string like ®, ©, ™ in Java

关于java - 从字符串中删除不可打印字符的更好方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6772221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com