Java 从字符串的一个实例打印到另一个实例

Java 从字符串的一个实例打印到另一个实例,java,string,Java,String,假设我有这个字符串: [0 1 2] [0 1 1] [0 1 3] [1 2 3] [2 4 6] [9 5 2] [0 1 3] 我想打印从[0 1 3的一个实例到[0 1 3]的下一个实例的所有内容。在本例中,我想打印: [0 1 3] [1 2 3] [2 4 6] [9 5 2] [0 1 3] 在Java中我该怎么做呢?我想问的是,有没有一种方法可以使用子字符串以某种方式操纵它来打印此文件,或者我必须获取第一个实例的索引,继续删除,直到到达下一个实例?您可以通过从[0 1 3]的

假设我有这个字符串:

[0 1 2]
[0 1 1]
[0 1 3]
[1 2 3]
[2 4 6]
[9 5 2]
[0 1 3]
我想打印从
[0 1 3
的一个实例到
[0 1 3]
的下一个实例的所有内容。在本例中,我想打印:

[0 1 3]
[1 2 3]
[2 4 6]
[9 5 2]
[0 1 3]

在Java中我该怎么做呢?我想问的是,有没有一种方法可以使用
子字符串
以某种方式操纵它来打印此文件,或者我必须获取第一个实例的索引,继续删除,直到到达下一个实例?

您可以通过从
[0 1 3]的第一个索引开始获取子字符串来完成此操作
[0 1 3]
的第二个索引。第二个索引是通过调用找到的:此方法开始从给定的索引开始查找,因此我们给它第一个找到的索引(移动以便它找不到已找到的索引)

下面的代码将字符串存储在
str
中,并将查找到的序列存储在
sequence
中。检索第一个索引。如果找到了,我们将查找第二个索引,如果也找到了第二个索引,我们将获取子字符串。我们需要添加
sequence.length()
将子字符串用于要保留的最终序列时

public static void main(String[] args) {
    String str = "[0 1 2]\n[0 1 1]\n[0 1 3]\n[1 2 3]\n[2 4 6]\n[9 5 2]\n[0 1 3]";
    String sequence = "[0 1 3]";

    int firstIndex = str.indexOf(sequence);
    if (firstIndex >= 0) {
        int secondIndex = str.indexOf(sequence, firstIndex + sequence.length());
        if (secondIndex >= 0) {
            String result = str.substring(firstIndex, secondIndex + sequence.length());
            System.out.println(result);
        }
    }

}
印刷品

[0 1 3]
[1 2 3]
[2 4 6]
[9 5 2]
[0 1 3]

这是一个有多行的字符串?只需打印出两行之间的子字符串,就像你在问题中所说的…是的,这是一个有多行的字符串。我如何打印出两行之间的子字符串?indexof只会返回第一次出现的结果,对吗?啊,这很好。非常感谢!