区切り文字として使用する代わりに|
、メッセージ部分に存在しない区切り文字を見つけて、送信されたメッセージの先頭に渡すことができます。区切り文字として整数を使用する例を次に示します。
String[] parts = {"this is a message", "it's got three parts", "this one's the last"};
String delimiter = null;
for (int i = 0; i < 100; i++) {
String s = Integer.toString(i);
if (parts[0].contains(s) || parts[1].contains(s) || parts[2].contains(s))
continue;
delimiter = s;
break;
}
String message = delimiter + "#" + parts[0] + delimiter + parts[1] + delimiter + parts[2];
今、メッセージは0#this is a message0it's got three parts0this one's the last
です。
受信側では、区切り文字を見つけることから始めて、その上でメッセージ文字列を分割します。
String[] tmp = message.split("#", 2);
String[] parts = tmp[1].split(tmp[0]);
メッセージ部分を数回スキャンする必要があるため、これは最も効率的な解決策ではありませんが、実装は非常に簡単です。の値が見つからず、メッセージの一部である場合、予期しない結果が発生する可能性がありますdelimiter
。null