No match found

Status
Nicht offen für weitere Antworten.

Dag B.

Aktives Mitglied
Hallo,

ich habe ein Problem mit dem Matcher.

Java:
        char searched_char = '-'; /**The char which is searched. In this case the gap-char "-" */
        
        Pattern p = Pattern.compile(first_line+"([\\"+searched_char+"\n]+)"+".+?"+"([\\"+searched_char+"]+)"); //defines the pattern which shall be searched
        Matcher m = p.matcher(entryone); //defines in which string will be searched
        m.find(); //search
Wenn ich nun auf m.group(1) zugreife und er nichts gefunden hat, wirft er mich aus dem Programm
Exception in thread "main" java.lang.IllegalStateException: No match found

Das will ich verhindern, aber ohne try/catch.

Aber wenn ich sage
Java:
if(m.find())
geht er nie in die Schleife, egal ob ein Match gefunden wurde oder nicht. -.-

Wenn ich sage
Java:
if(m.group(1).isEmpty())
kommt wieder das:
Exception in thread "main" java.lang.IllegalStateException: No match found
genauso bei
Java:
if(m.group.isEmpty())



Wie krieg ich das also ohne try/catch hin? Es ist kein ungewöhnlicher Fehler, dass kein '-' in der Datei steht, das kommt öfter mal vor und mir wurde gesagt, dass man in so einem Fall, wenns also kein unerwarteter Fehler ist, besser kein try/catch nehmen soll...
 

Dag B.

Aktives Mitglied
Hallo,

leider nein.

Java:
       while(m.find())
        {
            gaps_front = m.group(1).length()-1; //contains the number of gaps in front of the sequence
            gaps_end = m.group(2).length(); //contains the number of gabs behind the sequence
            firstline = first_line_length-1;
        }

Da geht er ebenfalls nicht in die Schleife, zumal es ja eine Endlosschleife wäre, weil m.find() nicht auf false gesetzt wird. ^^

Die 3 Variablen sind alles Integer.
 

Dag B.

Aktives Mitglied
Ok, war wohl ein kleiner Verständnisfehler meinerseits. Ich hatte das m.find() ja zweimal aufgeführt:

Java:
        Pattern p = Pattern.compile(first_line+"([\\"+searched_char+"\n]+)"+".+?"+"([\\"+searched_char+"]+)"); //defines the pattern which shall be searched
        Matcher m = p.matcher(entryone); //defines in which string will be searched
>>>  m.find(); //search
        int gaps_front = 0, gaps_end = 0;
        int firstline = first_line_length;
>>>  if(m.find())
        {
            gaps_front = m.group(1).length()-1; //contains the number of gaps in front of the sequence
            gaps_end = m.group(2).length(); //contains the number of gabs behind the sequence
            firstline = first_line_length-1;
        }
Ich vermute dass er beim zweiten Ausführen auf false geht,weil er schon alles im ersten gefunden hat oder so. ^^

Dann macht auch das while von oldshoe Sinn, wenn er nur beim ersten Mal auf true ist.
Danke für die Lösung, ich hatte es etwas missverstanden und hatte nur das if durch ein while ersetzt, wodurch ich es ja immernoch zweimal ausgeführt hab. ^^"

So funktioniert es nun. Das if kann wahlweise durch ein while ersetzt werden:
Java:
        char searched_char = '-'; /**The char which is searched. In this case the gap-char "-" */
        
        Pattern p = Pattern.compile(first_line+"([\\"+searched_char+"\n]+)"+".+?"+"([\\"+searched_char+"]+)"); //defines the pattern which shall be searched
        Matcher m = p.matcher(entryone); //defines in which string will be searched
        int gaps_front = 0, gaps_end = 0;
        int firstline = first_line_length;
       if(m.find())
        {
            gaps_front = m.group(1).length()-1; //contains the number of gaps in front of the sequence
            gaps_end = m.group(2).length(); //contains the number of gabs behind the sequence
            firstline = first_line_length-1;
        }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Pattern Matching ohne Match-Methoden Java Basics - Anfänger-Themen 11
W String match mit Wildcard ODER Regex Java Basics - Anfänger-Themen 1
J Regex + Match Zahlen filtern Java Basics - Anfänger-Themen 5
E string.match[regex] - Help ! Java Basics - Anfänger-Themen 2
L string match Java Basics - Anfänger-Themen 2
I String, Split, match, wo liegt mein Fehler ? Java Basics - Anfänger-Themen 4
P pattern/match Java Basics - Anfänger-Themen 2
S Regex Match oder so Java Basics - Anfänger-Themen 7
I No Jakarta Enterprise Beans found with interface ignorieren? Java Basics - Anfänger-Themen 2
I No EJB found with interface of type Java Basics - Anfänger-Themen 12
I Browser integriert in Desktop Applikation - Webcam interface not found Java Basics - Anfänger-Themen 26
C No suitable driver found for jdbc:odbc:mysql Java Basics - Anfänger-Themen 8
B No Main Classes Found Java Basics - Anfänger-Themen 7
A Class not found - Jar liegt am classpath Java Basics - Anfänger-Themen 2
C Erste Schritte (Netbeans) no main classes found Java Basics - Anfänger-Themen 5
N Email mit Anhang - File not Found Java Basics - Anfänger-Themen 1
M Java Bibliothek Javadoc not found Java Basics - Anfänger-Themen 1
D JDK installieren No JVM could be found on your system. Java Basics - Anfänger-Themen 9
B Compiler-Fehler Hilfe!!! required variable ; found value Java Basics - Anfänger-Themen 4
D java.util.NoSuchElementException: No line found Java Basics - Anfänger-Themen 11
G No line found-Fehler bei Scanner Java Basics - Anfänger-Themen 7
S Class File Editor gibt beim Start der Programms die Fehlermeldung Source not found aus Java Basics - Anfänger-Themen 1
K The Java Runtime Environment cannot be found. Java Basics - Anfänger-Themen 6
X javac file not found Java Basics - Anfänger-Themen 4
Kenan89 XML-Files erstellen wirft File not found Exception Java Basics - Anfänger-Themen 9
S Classpath Mainclass could not be found Java Basics - Anfänger-Themen 17
E Schach in Java-Applet <No main classes found> Java Basics - Anfänger-Themen 5
S expected java.lang.string but found char Java Basics - Anfänger-Themen 5
N Java Kara --> Class Not Found Java Basics - Anfänger-Themen 22
F Log4j - log4j:WARN No appenders could be found for logger Java Basics - Anfänger-Themen 1
R Switch Abfrage: Found boolean but expected int? Java Basics - Anfänger-Themen 7
E found int but expect boolean Java Basics - Anfänger-Themen 4
B Class Not found Java Basics - Anfänger-Themen 2
A JAR2EXE -> Java Runtime Environment not found Java Basics - Anfänger-Themen 4
Luk10 method () not found Java Basics - Anfänger-Themen 9
P Reflection - Class Not Found Exception Java Basics - Anfänger-Themen 3
J Batch Datei liefert CLASS NOT FOUND Warum !? Java Basics - Anfänger-Themen 11
M Main Class Not Found... Java Basics - Anfänger-Themen 11
Spin SAX parsen ..XML not found Java Basics - Anfänger-Themen 2
F eclipse- source not found Java Basics - Anfänger-Themen 2
D Class not found fehler beim ausführen unter konsole : / Java Basics - Anfänger-Themen 2
P Java Interpreter No Class def found Java Basics - Anfänger-Themen 15
A Anfängerfrage - array required, but java.lang.String found Java Basics - Anfänger-Themen 7
A MainClass not Found auf verschiedenen Rechnern Java Basics - Anfänger-Themen 2
G JUnit laeuft nicht -> Class not found Java Basics - Anfänger-Themen 2
J System.out.println(. + (found ? "" : "k" Java Basics - Anfänger-Themen 8
G Eclipse source not found Java Basics - Anfänger-Themen 5
G Eclipse + "source not found" Fehler Java Basics - Anfänger-Themen 6
D File not Found in Eclipse. Java Basics - Anfänger-Themen 3
T method <init> not found in class . Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben