1

マシンからデータを取得してプロットするインターフェイスを設計する必要があります。私はすでにフェッチ部分を設計しており、フォーマットの文字列をフェッチします A&B@.13409$13400$13400$13386$13418$13427$13406$13383$13406$13412$13419$00000$00000$

最初の 5A&B@.文字は識別子です。new line feed5 番目の文字は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 feedNew 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,"$");は文字列をまったく解析しません。

この動作の理由を理解できません。誰でも解決策を教えてもらえますか?

ありがとう

4

2 に答える 2