マシンからデータを取得してプロットするインターフェイスを設計する必要があります。私はすでにフェッチ部分を設計しており、フォーマットの文字列をフェッチします A&B@.13409$13400$13400$13386$13418$13427$13406$13383$13406$13412$13419$00000$00000$
最初の 5A&B@.
文字は識別子です。new line feed
5 番目の文字はASCIIであることに注意してください0xA
。
私が書いた関数 -
public static boolean checkStart(String str,String startStr){
String Initials = str.substring(0,5);
System.out.println("Here is start: " + Initials);
if (startStr.equals(Initials))
return true;
else
return false;
}
Here is start: A&B@.
どちらが正しいかを示します。
質問 1:
なぜ使用するときに ie を使用する必要があるのstr.substring(0,5)
ですか。なぜこの違いを生むのか。str.substring(0,4)
Here is start: A&B@
new line feed
New Line feed
さらに残りの文字列を抽出するs.substring(5,s.length())
には、代わりに使用する必要がありますs.substring(6,s.length())
つまり
、s.substring(6,s.length())
識別子3409$13400$13400$13386$13418$13427$13406$13383$13406$13412$13419$00000$00000$
の後の最初の文字が欠落しています。A&B@.
質問2:
私の解析機能は次のとおりです。
public static String[] StringParser(String str,String del){
String[] sParsed = str.split(del);
for (int i=0; i<sParsed.length; i++) {
System.out.println(sParsed[i]);
}
return sParsed;
}
文字列を正しく解析しString s = "A&B@.13409/13400/13400/13386/13418/13427/13406/13383/13406/13412/13419/00000/00000/";
、関数を次のように呼び出しますString[] tokens = StringParser(rightChannelString,"/");
ただし、 などの文字列String s = "A&B@.13409$13400$13400$13386$13418$13427$13406$13383$13406$13412$13419$00000$00000$"
の場合、呼び出しString[] tokens = StringParser(rightChannelString,"$");
は文字列をまったく解析しません。
この動作の理由を理解できません。誰でも解決策を教えてもらえますか?
ありがとう