我有一个字符串
"yes 12 /12 /yes /n
yes 12 /12 /yes "
如何检查字符串中有“yes”时是否有相应的“/yes”,同样,每当有“12”时,是否有相应的“/12”?例如,如果字符串为
"yes 12 /12 /yes /n
yes 12 /12 "
它应该给我一个错误,在第 2 行说错误,然后继续阅读文件的其余部分。
我有一个字符串
"yes 12 /12 /yes /n
yes 12 /12 /yes "
如何检查字符串中有“yes”时是否有相应的“/yes”,同样,每当有“12”时,是否有相应的“/12”?例如,如果字符串为
"yes 12 /12 /yes /n
yes 12 /12 "
它应该给我一个错误,在第 2 行说错误,然后继续阅读文件的其余部分。
您可以使用一些递归来查找标签和相应的结束标签:
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;
}
}
使用String.contains()
方法
String s= "yes 12 /12 /yes /n"
if(s.contains("yes") && s.contains("/yes")){
sysout("yes");
}
对任何其他对做同样的事情:)
首先,您需要获取所有单词的列表。然后对于每个单词,尝试查看是否包含 /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");
}
}