String nach Ausdruck durchsuchen und Folgeattribut ausgeben

StefanG

Aktives Mitglied
Hallo,

hier also mein erster Beitrag:

Ich lese eine Textdatei ein und suche im String nach einer Zeichenfolge "' UNH+ " die an einer beliebigen Stelle stehen kann, hinter dieser Zeichenfolge kommt eine fortlaufende Nummer mit einer variablen Länge und schliesst mit einem " + " ab. Darauf folgt ein Ausdruck variabler Länge den ich in einen String schreiben möchte. Dieser Ausdruck schliesst mit einem : ab.

xyz'UNH+123456789+AUSDRUCK:xyz

Wie kann ich also im gesamten String das Segment " 'UNH+ " finden, die Zahl dahinter überspringen und den Ausdruck hinter dem " + " bis zum " : " in eine Variable schreiben?

Danke schoneinmal für eure Hilfe. Meine Versuche mit StringTokenizer etc. verliefen bislang erfolglos.
 
String Klasse schon angesehen? die indexOf Methode wird dir helfen...

oder mit regex... aber das ist eine andere wissenschaft ;-)
 
[Java] String s1 = text.toString() ;

int index = s1.indexOf("'UNH+") ;

String s2 = "error - String not found" ;

if (index > -1) // found !
{
// Teil vorher
s2 = s1.substring(0, index) ; // Zählung beginnt bei Index 0

// neuen Teil
s2 = s2.concat(" gefunden ") ;

// Teil dahinter
s2 = s2.concat( s1.substring(index +4) ) ; // 4 = Länge zu ersetzenden Wortteiles

System.out.println("#" +s2 +"#") ;

[/Java]


So habe ich begonnen. Die Stelle wird auch gefunden, jedoch weis ich nicht wie ich dann zu dem nächsten " + " springe und den folgenden Ausdruck in einen seperaten String schreibe.
 
bei indexOf kann man die Stelle mitgeben aber der gesucht wirt...
Java:
  String input = "xyz'UNH+123456789+AUSDRUCK:xyz";
      int uhu = input.indexOf("UNH+");
      int plus = input.indexOf("+", uhu+4);
      int doppelpunkt = input.indexOf(":", plus+1);
      
      //schaun mir mal wo wir sind,...passt!
      System.out.println(input.charAt(uhu));
      System.out.println(input.charAt(plus));
      System.out.println(input.charAt(doppelpunkt));
      
      String ausdruck = input.substring(plus+1, doppelpunkt);
      System.out.println(ausdruck);
 

Zurück
Oben