In String suchen

  • Themenstarter Themenstarter JJ321
  • Beginndatum Beginndatum
J

JJ321

Gast
also ich möchte folgendes umsetzen und weiß nicht wie :

ich habe einen String -> blabla="blublub"

wie kann ich jetzt in dem String nach dieser Stelle suchen und dann das nach dem = von " bis " auslesen ??

Danke sehr schonmal
 
@Volvagia der Thread hilft mir nicht wirklich weiter

ich muss mich wohl etwas konkreter ausdrücken

also ich will in einem String nach der Stelle zB : hallo ii="12345" suchen
und dann die Stelle zwischen den zwei Anführungszeichen haben ...

das Problem ist aber das das Stück zwichen den beiden "" auch 3,6 oder gar 8 Zeichen lang sein kann ...

dazu kommt noch das es in dem String auch zB hallo uu / tschüssi ii gibt,
also muss wirklich nach genau dieser Stelle gesucht werden
 
Warum? indexOf liegert dir die Position des Ersten Anführungszeichen, und mit substring schneidest du einen String vom Ersten bis zum Zweiten raus.
 
in dem ich mir den String anschaue ?! Oo

String#subString(int begin, int end) damit wirds kaum gehen weil ja der Anfang und das Ende im String variieren...

ich würde es iwie so machen das es nach einem Stichwort sucht bzw einer Schlüsselstelle die es nur einmal im String gibt und dann, so, dass das Nächste " bedeutet : hier beginnt der Substring
und das Übernächste " bedeutet : hier endet der Substring

nur leider habe ich keine Ahnung wie das umzusetzen ist
 
Du hast bis jetzt nichts davon gesagt, dass es 20 Anführungszeichen geben kann.
Es gibt aber die Methode indexOf(char, int), mit einer Schleife könntest du damit das gewünschte Anführungszeichen lokalisieren.
 
kann nicht ab nem bestimmten Schlüsselwort was weiß ich noch 15 Zeichen laden und in diesem Substring zwischen " und " auslesen

oder erläutere mal bitte wie du das mit der Schleife meinst 🙂
 
Java:
public static void main(String[] args)
{
	String s = "Hallo\"wie\"geht\"es\"dir\"heute\"?\"";
	byte search = 4;
	
	int first = 0;
	for(int i = 0; i < search; i++)
		first = s.indexOf('"', first) + 1;
	int next = s.indexOf('"', first + 1);
	System.out.println(s.substring(first, next));
}

Code:
dir
 
habs geschafft :

Java:
 public void searchForValue1()
 {
  ssub1 = (htmcont.indexOf("name=\"id\"")+10);  // damit wird halt ein Substring erstellt der nur 2 " enthält
  esub1 = (htmcont.indexOf("name=\"id\"")+25);
 
  htmsub1 = htmcont.substring(ssub1,esub1);
  System.out.println(htmsub1);  

  sval1 = (htmsub1.indexOf("\"")+1);
  eval1 = (htmsub1.lastIndexOf("\""));

  value1 = htmsub1.substring(sval1,eval1);
 
 }
 
sieht kompliziert aus... hier mal einfacher:

Java:
        String s1 = "name=\"id\"" + 10;
        System.out.println(s1);
        System.out.println("first: " + s1.indexOf("\""));
        System.out.println("last: " + s1.lastIndexOf("\""));

        Pattern p = Pattern.compile("([^\"]+)\"([^\"]+)\"([^\"]+)"); // 4 groups
        Matcher m = p.matcher(s1);
        System.out.println(m.matches());
        System.out.println(m.group());
        System.out.println(m.start());
        System.out.println(m.end());
        System.out.println(m.group(1));
        System.out.println(m.group(2));
        System.out.println(m.group(3));

        String s2 = m.group(2);

        String s3 = "name=\" i d \"" + 25;
        m = p.matcher(s3);
        m.matches(); // ..
        s3 = m.group(1) + "\"" + s2 + "\"" + m.group(3);
        System.out.println(s3);

verwirrend bestimmt. morgen mher. nacht
 

Zurück
Oben