Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Text innerhalb Anführungsstriche als "eins" auswerten
ich sitze gerade vor einem wahrscheinlich relativ einfachen "Problem". Und zwar möchte ich eine Art Kommando aus einer Datei lesen und dieses Kommando besteht einmal aus dem Befehl, dann einem String und dann noch einer Zahl.
In meinem Javaprogramm möchte ich das dann eine Methode übergeben, in etwa so:
Pseudocode
Java:
public void auswerten(String string, int zahl)
{
// Krimskrams
}
Eine Beispielzeile aus der besagten Datei würde so aussehen:
Code:
kommando "ich bin ein beispiel" 25
Wie kann ich es nun am SCHÖNSTEN (wie es an sich geht weiß ich schon) lösen, dass der Kram in den Anführungszeichen sozusagen am Stück eingelesen wird und dann als ein String an die Methode übergeben werden kann?
Ich hatte zuerst an einen StringTokenizer gedacht, aber der bietet wie ich die JavaDoc verstanden habe nicht wirklich so eine Option.
Wenn Du diese Beispielzeile einliest, dann brauchst deoch nur alles zwischen den beiden " in einen neuen String / StringBuilder o.ä. zu schreiben .....
@Test
public void test() {
String txt = "\"ich bin ein beispiel\"";
Pattern pattern = Pattern.compile("\"(.*)\"");
Matcher matcher = pattern.matcher(txt);
String beispiel = "";
if (matcher.matches()) {
beispiel = matcher.group(1);
}
assertEquals("ich bin ein beispiel", beispiel);
}
PS: Unabhängig davon ist folgende lösung mMn schöner:
Java:
public class Message {
private String cmd;
private String data;
private int number;
public Message(String msg) {
cmd = msg.substring(0, msg.indexOf(' '));
data = //...
//...
}
public String getCmd() //...
public String getData() //...
public String getNumber() //...
}
public class XYZ() {
public void auswerten(Message msg) {
//...
}
}
danke erstmal für die Antworten! Das mit dem Substring was Ruzmanz vorgeschlagen hat ist im Prinzip genau das was ich suche. Wenn jetzt aber das Kommando so aufgebaut ist:
Also in Kurzfassung eben mehrere Strings als "Parameter" für das Kommando machbar sind, wie würde man da am besten herangehen? Wären es da dann doch besser wieder reguläre Ausdrücke?