我正在开发适用于 Android 的 SMS 应用程序,我在单个 SMS 中发送多个预定义大小的字符串。在发送方,我连接了一些预定义大小的字符串。收到短信后,我想根据大小将长字符串拆分为更小的字符串。
这是一个简单的代码来解释我的尝试:
// On the SMS sending side
String str1 = new String(new char[8]);
String str2 = new String(new char[4]);
String str3 = new String(new char[2]);
String str4 = new String(new char[2]);
String sendSMS = str1 + str2 + str3 + str4;
// send SMS
收到数据后,我想将组合的字符串分成 str1、str2、str3、str4 的数据,因为我知道每个小字符串的大小。
到目前为止,我已经找到了一些关于 SO 的答案,所有这些答案都使用 split() 函数,但是我在连接的字符串之间没有分隔字符标记。相反,我想使用每个子字符串的大小知识来获取它们。类似于 sscanf 的东西正是我要寻找的。p>
最佳答案
这里有一些示例代码来做你想做的事...... 但是,它不会进行错误检查,我将留给您。
String[] splitter(String input, int[] lengths)
{
String[] output = new String[lengths.length];
int pos = 0;
for(int i=0;i<lengths.length;i++)
{
output[i] = input.substring(pos, pos+lengths[i]);
pos = pos + lengths[i];
}
return output;
}
关于java - 将一个长字符串拆分为指定大小的较小字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45642332/