Я пытаюсь найти текст между двумя строками, используя некоторые приведенные здесь примеры. Я могу это сделать в конкретном случае, но когда дело доходит до шестнадцатеричного (с использованием тех же идентификаторов), я получаю ошибку.Пожалуйста, подскажите, как получить значение между .... образцом и ошибкой, приведенными ниже ... Примечание. У меня большой текст (полные текстовые файлы приблизительно 9999 слов). Я предоставил только образец текста, который работает нормально
private static void modifyText() {
String str1 = "private final byte[] record1 = new byte[]{sdfjsdkhfkjsdf hgb sdjfkhsdkfsdf |sdfjksdhfjksd sdf sdkjfhsdkf | sdkjfh hgb sdkjfdshfks|}";
String result1 = str1.substring(str1.indexOf("byte[] record1 = new byte[]{") , str1.indexOf("}"));
System.out.println("\n found1\n"+result1);
String pattern1 = "record1 = new byte[]{";
String pattern2 = "}";
String text= "private final byte[] record1 = new byte[]{\r\n (byte)0x70,(byte)0x80}"; //**for small text it is working**
String result = text.substring(text.indexOf(pattern1) + 1, text.indexOf(pattern2));
System.out.println("\n found2\n"+result);
}
found1 печатает идеально ниже байта [] record1 = new byte [] {sdfjsdkhfkjsdf hgb sdjfkhsdkfsdf | sdfjksdhfjksd sdf sdkjfhsdkf |sdkjfh hgb sdkjfdshfks |
пока найдено 2 говорит об ошибке ------- java.lang.StringIndexOutOfBoundsException: индекс строки вне диапазона: -799 в java.lang.String.substring (неизвестный источник)