-1

この文字列を解析するにはどうすればよいですか

=w115113298015

等号の後の最初の 13 文字だけを取得するようにします。

そしてこの文字列

 c5|208971|YAhj56|thoimn|10/8/79|T|=w11511329801500 

最後の等号の後の最初の 13 文字を取得するようにします。

時々、この文字列には等号がありません。

 c5|208971|YAhj56|thoimn|10/8/79|T|w11511329801500 

最後の | の後の最初の 13 文字が必要です。サイン。

したがって、両方の文字列から w115113298015 を取得し、それらを比較します。

このコードを使用して等しい文字列を照合しましたが、現在使用している文字列は異なります。どんな入力も役に立ちます。

String firstContents = intent.getStringExtra("first_contents")
String secondContents = intent.getStringExtra("second_contents")

if (firstContents.equals(secondContents)) { 
   rest of code here.

これにコードを追加して文字列を解析するにはどうすればよいですか?

ありがとう

4

4 に答える 4

1

これにより、文字列が分割され|、最後の部分が取得されます。最後の部分の最初の文字が の場合=、それは削除されます。結果の文字列は、長さが 13 になるようにトリミングされます。

    String input = "c5|208971|YAhj56|thoimn|10/8/79|T|=w11511329801500";
    String[] parts = input.split("\\|");
    String comparableLastPart = parts[parts.length-1];

    if (comparableLastPart.charAt(0) == '=') {
        comparableLastPart = comparableLastPart.substring(1);
    }

    if (comparableLastPart.length() > 13) {
        comparableLastPart = comparableLastPart.substring(0, 13);
    }

    System.out.println("comparableLastPart: " + comparableLastPart);
于 2013-11-06T05:40:01.137 に答える
0

これを試して...

    String s = "c5|208971|YAhj56|thoimn|10/8/79|T|w11511329801500";
    String string = null;
    if (s.contains("=")) {
        string = s.substring(s.lastIndexOf("=") + 1);
    } else {
        string = s.substring(s.lastIndexOf("|") + 1);
    }
    if (string.length() >= 13) {
        string = string.substring(0, 13);
    }
于 2013-11-06T05:44:02.743 に答える
0

これは次の方法で行うことができます。

  1. メソッドを=使用するインデックスを見つけます。indexOf(char)
  2. に等しい場合、-1シンボル=は存在しません。

    を。method|を使用して charの最後のインデックスを見つけます。lastIndexOf(char)

    b. このインデックスから、メソッドを使用して実際の文字列から部分文字列を抽出しますsubstring(startIndex, endIndex)(最後のインデックスから|次の 13 文字まで)。

  3. のインデックスが=と等しくない場合は、メソッド-1を使用して実際の文字列から部分文字列を抽出しますsubstring(startIndex, endIndex)( のインデックスから=次の 13 文字まで)。

于 2013-11-06T05:38:09.450 に答える