我正在将一些代码从 Objective-C 移至 Java。该项目是一个 XML/HTML 解析器。在 Objective C 中,我几乎只使用 scanUpToString("mystring");方法。
我查看了 Java Scanner 类,但它将所有内容分解为标记。我不想要这样。我只是希望能够扫描子字符串的出现次数并跟踪扫描仪在整个字符串中的当前位置。
任何帮助将非常感谢!
编辑
更具体一点。我不希望 Scanner 进行标记化。
String test = "<title balh> blah <title> blah>";
Scanner feedScanner = new Scanner(test);
String title = "<title";
String a = feedScanner.next(title);
String b = feedScanner.next(title);
在上面的代码中我想要 feedScanner.next(title);扫描到下一次出现 "<title"
的末尾
实际发生的情况是第一次调用 FeeScanner.next 时它可以工作,因为默认分隔符是空格,但是,第二次调用它时它会失败(出于我的目的)。
最佳答案
您可以使用 String 类 (Java.lang.String) 来实现此目的。
首先获取子字符串的第一个索引。
int first_occurrence= string.indexOf(substring);
然后迭代整个字符串并获取子字符串的下一个值
int next_index=indexOf( str,fromIndex);
- 如果要保存值,请将它们添加到包装类并添加到 arraylist 对象。
关于java - Java 中最接近 NSScanner 的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10567856/