2017-01-16 3 views
-2

Ich habe eine String Variable wie in Java folgt.ein Muster aus einem String in Java Extrahierung

String s = "hello\nthis is java programme\n.class file will be generated after executing it\n"; 

Jetzt muß ich den .class Teil aus dem obigen String-Variable auf exctract. Wie geht das?

+1

Wenn Sie nur die '.class', dann benutzen Sie einfach' ".class" '. Ich nehme an, du wolltest etwas anderes? Kannst du es genauer definieren? Zeigen Sie, wie Ihre Ausgabekette sein sollte? – RealSkeptic

+0

Ich würde Regex vorschlagen, aber ich bekomme Ihre Anforderungen nicht. Was wäre der '.class' Teil? Wenn es nur das Literal ist, was meinst du mit "extrahieren"? – Thomas

+0

Es ist nur ein Muster, das ich versuche, aus der Zeichenfolge zu extrahieren. –

Antwort

0

ich wirklich nur einen Weg finden, damit Sie nicht einfach nur Ausgang „.class“, die erste ist, zu sehen, ob die Zeichenfolge „.class“ enthält, bevor es gedruckt wird. Hier ist eine Funktion, dies zu tun. Übergeben Sie eine Zeichenfolge, nach der gesucht werden soll, und eine Zeichenfolge, nach der gesucht werden soll.

//Returns the string if found, else returns an empty string 
public String FindString(String whatToFind, String whereToFind) 
{ 
    return whereToFind.contains(whatToFind) ? whatToFind : ""; 
} 

Ausgabe

String s = "hello\nthis is java programme\n.class file will be generated after executing it\n"; 
System.out.println(FindString(".class", s)); // prints .class 
0

wenn Sie wollen nur zu überprüfen, wenn die Zeichenfolge hat „.class“ Muster im Inneren können Sie einfach nur überprüfen Sie es mögen:

s.contains(".class"); 

Oder wenn Sie möchten, überprüfen, dass das Muster wie .class in Ihrem String, \n mit regex enthält:

Pattern p = Pattern.compile(".*\\.class.*", Pattern.DOTALL); 
Matcher m = p.matcher(s); 
boolean b = m.matches(); 

DOTALL ermöglicht \n auch als ein Zeichen betrachtet.

s ist der String Sie in Ihrem Code definiert.

0

Verwenden von regulären Ausdrücken, wie in diesem answer

String s = "hello\nthis is java programme\n<some_class_name_here>.class file will be generated after executing it\n"; 
//the following pattern I think will find what you're looking for, 
Pattern pattern = Pattern.compile("\n(.*\.class)"); 
Matcher matcher = pattern.matcher(s); 
if (matcher.find()) 
{ 
    System.out.println(matcher.group(1)); 
} 
+0

Die Leute wollen Ihnen wirklich helfen, aber wie die Kommentare zeigen, ist Ihre Frage nicht klar. Ich versuche zu wiederholen, was ich denke, dass Sie fragen: Ich habe eine 'String' Variable, die die folgende Struktur in Java hat. String s = "Hallo \ nDies ist Java-Programm \ n .class-Datei, nachdem es die Ausführung erzeugt wird \ n"; Jetzt muss ich extrahieren die '.class 'part von der obigen String-Variable, so dass ich eine Variable mit nur der Klasse und dem .class-Teil der Zeichenfolge habe. Wie extrahiere ich nur das Klassen- und das .class-Bit des Strings? – DDoomUs

Verwandte Themen