Teile eines Strings ausgeben

  • Themenstarter Themenstarter MobiDick
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

MobiDick

Gast
derzeitiger Code

Code:
		try{
	      Statement stmt = theConnection.createStatement();
		  rs = stmt.executeQuery("SELECT MIMEBODY FROM MAIL_QUEUE WHERE STATUS               LIKE 'failed'");
		  ResultSetMetaData rsmd = rs.getMetaData();
		  
		  while (rs.next()) {
			  StringWriter sWriter = new StringWriter();
			  BufferedReader br = new BufferedReader(rs.getCharacterStream("MIMEBODY"));
			  String str;

			  while ((str = br.readLine()) != null) {
				  sWriter.write(str);
			 }
			 
		  }
		  
		} 		
		catch(SQLException e){
		}
		catch (IOException e) {
		  e.printStackTrace();
		}

in SWriter steht der Text den ich in einen String schreiben will!
Danach soll alles zwischen den Zeichen "To:" und "Subject" ausgegeben werden!
Wie mach ichs ab besten?
 
Code:
	sWriter.write(str);
	String suchString = sWriter.toString();
	int suchWort =  suchString.indexOf("To:");
                int nextWort = suchString.indexOf("Subject:");
	System.out.println(suchString);

wie kann ich jetzt nur den inhalt von suchString von suchWort bis nextWort ausgeben?!?[/code]
 
Wie bereits gesagt: Benutz substring:

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#substring(int)
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#substring(int,%20int)

Zu beachten ist das bei :

Code:
abc.substring(start,ende);

von start bis (ende - 1) geteilt wird.
 
Code:
      while ((str = br.readLine()) != null) {
	sWriter.write(str);
	String suchString = sWriter.toString();
	int suchWort =  suchString.indexOf("To:");
	int nextWort = suchString.indexOf("Subject:");
	//String ergebnis = suchString.substring(suchWort,nextWort);
	System.out.println(suchWort);
	System.out.println(nextWort);
	System.out.println(" MIMEBODY: " + sWriter);
     }

seiht jetzt so aus! allerdings kommt es manchmal vor, dass in dem suchString kein "Subject:" vorkommt! deshalb krieh ich ein OutofBounderies als Fehler!
Wenn Subject nicht vorkommt soll er deshalb nach "Mime" suchen! habs über eine if-verzweigung probiert:

Code:
if (nextWort < 0){
nextWort = suchString.indexOf("Subject:");
}

klappt aber nicht!!! wie gehts richtig? kann jemand weiterhelfen?
 
So?
Code:
    String suchString = sWriter.toString(); 
     int start =  suchString.indexOf("To:");
     int end=  suchString.indexOf("Subject:");
     if (end < 0)  suchString.indexOf("Mime");
     if (end < 0)  end = suchString.length();

     String resultat = suchString.substring(start + "To:".length(), end);
 
Allerdings überprüfst du nicht ob bei start was gefunden wurde. Es ist ja möglich das "To:" nicht vorkommt (oder ?).
Falls nicht gibt indexOf ja -1 zurück und substring löst wieder ne Exception aus....
 
mic_checker hat gesagt.:
Allerdings überprüfst du nicht ob bei start was gefunden wurde. Es ist ja möglich das "To:" nicht vorkommt (oder ?).
Falls nicht gibt indexOf ja -1 zurück und substring löst wieder ne Exception aus....

Vielen Dank, dass du mich aufgeklärt hast.... :wink:
 
ne leute hat nur ne OutofBounderies Exception gefehlt! naja so ist das halt 🙂)))
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben