我有一个非常长的字符串。我有一个函数write(String str),它只能支持一个包含20个字符的字符串。如何将我的长字符串剪切成20个字符串并在我的write()函数中循环?
对不起,我做了什么:
for(String retval: pic.split("",20)) {
mBluetoothLeService.writeCharacteristic(characteristic, retval)
pic是我的长串。然而,这样做,它没有做我想做的事情
提前谢谢!
答案 0 :(得分:1)
答案 1 :(得分:1)
这里,使用字符串的arraylist,并使用子字符串,支持超过20个字符
String pic = "THIS IS A VERY LONG STRING MORE THAN 20 CHARS";
ArrayList<String> strings = new ArrayList<String>();
int index = 0;
while (index < pic.length()) {
strings.add(pic.substring(index, Math.min(index + 20,pic.length())));
index += 20; //split strings, add to arraylist
}
for(String s :strings){
mBluetoothLeService.writeCharacteristic(characteristic, s); //write the string
}
或者更好的是,使用正则表达式:
for(String s : pic.split("(?<=\\G.{20})"))
mBluetoothLeService.writeCharacteristic(characteristic, s);