gpt4 book ai didi

java - 用不可见字符(制表符、回车符、组分隔符等)分隔字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:44 25 4
gpt4 key购买 nike

我试图在 Android 应用程序中按某些字符拆分字符串。字符包括井号、逗号、分号、制表符、回车符、组分隔符、单位分隔符和记录分隔符。

这是我进行拆分的方法:

private ArrayList<String> splitdata(String data, String delimiter){
ArrayList<String> fields = new ArrayList<>();
int i = 0; int previous = 0; int index = 0;
boolean first = true;
while (i != -1) {
i = data.indexOf(delimiter,i);

if(i != -1){
if (first) {
fields.add(data.substring(0, i));
first = false;
} else {
fields.add(data.substring(previous + delimiter.length(), i));
}
Log.d(SCANNED_INTENT_TAG,"Newly found field: " + fields.get(index));
index++;
previous = i;
i += delimiter.length();
}
}
if (previous < (data.length()-1) && !first) {
fields.add(data.substring(previous+1));
Log.d(SCANNED_INTENT_TAG,"Newly found field: " + fields.get(index));
}
return fields;
}

这适用于我可以从键盘输入的可见字符,例如井号、逗号和分号。但是,我无法让它检测特殊字符制表符、回车符、组分隔符、单位分隔符或记录分隔符。我像这样传递它们:

some_arraylist = splitdata(some_str,"\t");
some_arraylist = splitdata(some_str,"\r");
some_arraylist = splitdata(some_str,Character.toString((char) 31));
some_arraylist = splitdata(some_str,Character.toString((char) 29));
some_arraylist = splitdata(some_str,Character.toString((char) 28));

我应该将它们作为什么传递?

最佳答案

我不确定您是否意识到这一点,但 String 类已经有一个 split 函数,它接受正则表达式并将您的拆分字符串数据作为 String 数组返回。看看你的代码,你似乎没有做任何与 split 不同的事情。此外, split 函数处理正则表达式,它非常强大并且实现起来非常复杂。使用 JDK 中已包含的经过验证且正确的方法。

关于java - 用不可见字符(制表符、回车符、组分隔符等)分隔字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48083836/

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