0

私は文字列を持っています

             "yes 12 /12 /yes /n
              yes 12 /12 /yes "

文字列に「yes」が含まれている場合は常に対応する「/yes」があり、同様に「12」が含まれている場合は常に対応する「/12」があることを確認するにはどうすればよいですか。たとえば、文字列が

             "yes 12 /12 /yes /n 
              yes 12 /12 "

2行目でエラーと表示され、ファイルの残りの部分の読み取りに進む必要があります。

4

4 に答える 4

0

使用String.contains()方法

String s= "yes 12 /12 /yes /n"
if(s.contains("yes") && s.contains("/yes")){
   sysout("yes");
}

他のペアについても同じことをします:)

于 2012-10-31T11:30:20.397 に答える
0

まず、すべての単語のリストを取得する必要があります。次に、単語ごとに /word が含まれているかどうかを確認します。

String s = "12 a /12";
List<String> list = Arrays.asList(s.split("\\s"));
for (String value : list) {
  if (list.contains("/" + value)) {
    System.out.println("Does contain");
  } else {
    System.out.println("Doesn't contain");
  }
}
于 2012-10-31T11:31:50.487 に答える
0

クラスcontainsでメソッドを使用できます:String

String str = ""yes 12 /12 /yes /n";
boolean isOk = str.contains("yes") && str.contains("/yes"); // isOk = true

str = "yes 12 /12 ";
isOk = str.contains("12") && str.contains("/12") // isOk = false
于 2012-10-31T11:33:03.450 に答える
0

再帰を使用して、タグと対応する終了タグを見つけることができます。

public class TagMatching {
    public static void main(String[] args) {
        List<String> lines = Arrays.asList("yes 12 /12 /yes /n",
                                           "yes 12 /12 /yes",
                                           "yes 12 a b /12 /yes",
                                           "yes 12 c /12 /yes");
        for (String line : lines) {
            boolean valid = validate(Arrays.asList(line.split(" ")));
            System.out.println("valid = " + valid);
        }
    }

    public static boolean validate(List<String> tags) {
        if (tags.size() == 0) {
            return true;
        }

        String first = tags.get(0);
        String last = tags.get(tags.size() - 1);
        if (last.equals("/" + first)) {
            return validate(tags.subList(1, tags.size()-1));
        }

        return false;
    }
}
于 2012-10-31T12:13:34.497 に答える