java - Java 中最接近 NSScanner 的东西

标签 java string string-parsing nsscanner

我正在将一些代码从 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) 来实现此目的。

  1. 首先获取子字符串的第一个索引。

    int first_occurrence= string.indexOf(substring);

  2. 然后迭代整个字符串并获取子字符串的下一个值

    int next_index=indexOf( str,fromIndex);

  3. 如果要保存值,请将它们添加到包装类并添加到 arraylist 对象。

关于java - Java 中最接近 NSScanner 的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10567856/

相关文章:

java - 将字符串转换为 Angular 中的 byte[] 并将其另存为 pdf

java - 将 Json 字符串转换为字符串

java - 在java中解析引用的文本

java - 有没有比这更好的方法来清理文本输入中的超链接?

bash - 如何使用sed从文本文件中删除第一个和最后两个字符?

java - 不能抛出私有(private)成员类的实例? - java

java - 在传输完整对象图的上下文中选择 SimpleBeanEditorDriver 或 RequestFactoryEditorDriver

java - 添加AsyncTask后空指针。

ios - 如何在 Swift 中将具有十六进制数据的 NSData 对象转换为 ASCII?

c - 使用 strtol 的十六进制数 (str) 解释