String Split?

thomes

Mitglied
Hi, ich habe folgendes Anfänger Problem:

Also, gerne würde ich den Teil im String, der zwischen den eckigen Klammern steht ausschneiden:

Mein String sieht so aus:

"Hans Muster <hans@muster.de>";

...und aus diesem würde ich gerne nur das was zwischen den eckigen Klammern steht entfernen.
Es sollte dann nur noch das übrig bleiben:

[hans@muster.de]




Danke,
T
 

AmunRa

Gesperrter Benutzer
Da ist REGEX brauchbar

Java:
Pattern p = Pattern.compile("<([^>]*?)>");

Matcher m = p.matcher("hans <hans@test.com>");

if (m.find()){
  System.out.println(m.group(1));
}
 
Zuletzt bearbeitet:

Andi_CH

Top Contributor
Ich werde niemals behaupten, dass meine Lösung besser sei - sie ist allenfalls für ein einfaches Problem besser zu verstehen als Regexp

Java:
public class Test2 {

	final static String adr = "Hans Muster <hans@muster.de>";

	static String split(String str) {
		int anfang = str.indexOf('<');
		int ende = str.indexOf('>');
		return str.substring(anfang+1, ende);
	}

	public static void main(String[] args) {
		System.out.println(split(adr));
	}
}
 

thomes

Mitglied
Hi,
leider habe ich mich wohl völlig geirrt, als ich dachte ich hätte "nur" ein String Problem. :(

Ich habe es wohl nicht mit einem String zutun, sondern mit einem
array, welches gefüllt ist mit Objekten vom Typ Message (ich hoffe das stimmt so wie ich es formuliere).


Wie schaffe ich es nun "nur" die emailadresse aus dem array "processedData"
angezeigt zu bekommen und nicht noch den Rest. (Schaut bitte in ZEILE 36)

Ich weiss wirklich nicht mehr weiter...bin für jeden Hinweis sehr dankbar!

...der Code lässt sich compilieren und ausführen (ein Test-emailaccount ist angelegt):



Java:
package imapen;

import java.util.*;

//import java.util.regex.*;

import javax.mail.*;


public class GetMail{

	    public static void main(String args[]) throws Exception{

	        String server = "imap.web.de";
	        String username = "javatest2342@web.de";
	        String password = "javatest2342";

	        Properties properties = System.getProperties();

	        Session session = Session.getDefaultInstance(properties, null);

	        Store store = session.getStore("imap");
	        store.connect(server, username, password);

	        Folder folder = store.getFolder("INBOX");
	        folder.open(Folder.READ_ONLY);


	  //processedData ist ein array gefuellt mit Objekten des Typ Message
	  //
	        Message[] processedData = folder.getMessages();

	        for (int i = 0; i < processedData.length; i++){	        	
	        	System.out.println( "***************************************************************\n"); 
	        	System.out.println( "email-No.: " + i );
	        	System.out.println( "Sender: " + processedData[i].getFrom()[0]); 
	        	System.out.println("Header: " + processedData[i].getSubject());
	            System.out.println("Body: " + processedData[i].getContent());
	        }
	        
	        System.out.println( "---------------------------END--------------------------------------\n");
	
	 }//END main()
	   

}//END class GetMail
 

r.w.

Bekanntes Mitglied
Hallo thomes,

Hi,
leider habe ich mich wohl völlig geirrt, als ich dachte ich hätte "nur" ein String Problem. :(

Ich habe es wohl nicht mit einem String zutun, sondern mit einem
array, welches gefüllt ist mit Objekten vom Typ Message (ich hoffe das stimmt so wie ich es formuliere).


Wie schaffe ich es nun "nur" die emailadresse aus dem array "processedData"
angezeigt zu bekommen und nicht noch den Rest. (Schaut bitte in ZEILE 36)

Ich weiss wirklich nicht mehr weiter...bin für jeden Hinweis sehr dankbar!

...der Code lässt sich compilieren und ausführen (ein Test-emailaccount ist angelegt):



einfach nur Zeile 36 durch diese ersetzen...
Java:
   System.out.println( "Sender: " + getMailAddr(processedData[i].getFrom()[0].toString()));

...und diese (auf Basis des Codes von AmunRa erstellte) Funktion in die Klasse einfügen:

Java:
     static String getMailAddr(String s) {
        Pattern p = Pattern.compile("<([^>]*?)>");

        Matcher m = p.matcher(s);

        if (m.find()){
          return m.group(1);
        }
        return s; // wenn keine '<>' gefunden, die komplette Senderzeile zurueckliefern.
     }

Da 'processedData.getFrom()' ein Array zurückliefert, müsstest Du dies eigentlich noch iterieren.
Wobei ich mir gerade die Frage stelle, wie eine EMail mehrere Sender haben kann.

Ich hoffe, ich hab Dich nicht falsch verstanden, aber wenn Du wirklich nur die EMail-Adressen
der Sender ausgeben möchtest, hindert Dich niemand daran, alle anderen Zeilen die ein
'System.out.println..." enthalten aus zu kommentieren. ;-)


Ich hoffe, das hilft Dir weiter.

VG ROlf
 
Zuletzt bearbeitet:

thomes

Mitglied
Hi ROlf,

vielen Dank für deine Hilfe! :)

Mit der Klasse "GetMail" lese ich ein email-Postfach aus...dadurch kommen "mehrere" (so auch emails im Postfach liegen) Absenderadressen beim auslesen des Postfachs zustanden.

Mein Output sieht dann in etwas so aus (mein Problem war, bei "Sender" hätte ich gerne nur die Ausgabe der emailadresse gehabt...daran verzweifelte ich...nochmals DANKE für deine Hilfe):


email-No.: 0
Sender: Hans Meyer <hm@goooglemail.com>
Header: Test
Body: javax.mail.internet.MimeMultipart@4998a455
***************************************************************

email-No.: 1
Sender: +4711@sms.web.de
Header: SMS-Nachricht von +4711
Body: test


***************************************************************

email-No.: 2
Sender: "WEB.DE informiert" <neu@web.de>
Header: Schützen Sie Ihren PC!
Body: javax.mail.internet.MimeMultipart@314c194d
---------------------------END--------------------------------------
 

r.w.

Bekanntes Mitglied
Hallo thomes,

also war damit Dein Problem gelöst?

Hi ROlf,

vielen Dank für deine Hilfe! :)

Mit der Klasse "GetMail" lese ich ein email-Postfach aus...dadurch kommen "mehrere" (so auch emails im Postfach liegen) Absenderadressen beim auslesen des Postfachs zustanden.

Mein Output sieht dann in etwas so aus (mein Problem war, bei "Sender" hätte ich gerne nur die Ausgabe der emailadresse gehabt...daran verzweifelte ich...nochmals DANKE für deine Hilfe):
...

Falls nicht, hier noch mal der komplette Code zur ausschließlichen Ausgabe der Senderadressen:

Java:
package imapen;

import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.mail.*;


public class GetMail{

        public static void main(String args[]) throws Exception{

            String server = "imap.web.de";
            String username = "javatest2342@web.de";
            String password = "javatest2342";

            Properties properties = System.getProperties();

            Session session = Session.getDefaultInstance(properties, null);

            Store store = session.getStore("imap");
            store.connect(server, username, password);

            Folder folder = store.getFolder("INBOX");
            folder.open(Folder.READ_ONLY);


      //processedData ist ein array gefuellt mit Objekten des Typ Message
      //
            Message[] processedData = folder.getMessages();

            for (int i = 0; i < processedData.length; i++){
                System.out.println( getMailAddr(processedData[i].getFrom()[0].toString()));
            }

     }//END main()



     static String getMailAddr(String s) {
        Pattern p = Pattern.compile("<([^>]*?)>");

        Matcher m = p.matcher(s);

        if (m.find()){
          return m.group(1);
        }
        return s;
     }

}//END class GetMail

Bei Deinem Test-Postfach wird damit diese Ausgabe erzeugt:

Code:
javatest2342@web.de
javatest2342@web.de

VG ROlf
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
I String.split regex Frage Java Basics - Anfänger-Themen 2
S String split Java Basics - Anfänger-Themen 12
Dimax String Split Java Basics - Anfänger-Themen 2
S Methoden String: split Java Basics - Anfänger-Themen 5
MR._FIRE_Flower String.split("(") geht nicht Java Basics - Anfänger-Themen 4
C Gleichung String Split Java Basics - Anfänger-Themen 6
G String.split(".") Java Basics - Anfänger-Themen 3
A String Split Java Basics - Anfänger-Themen 4
K How to split my String Java Basics - Anfänger-Themen 2
L String array mit split füllen Java Basics - Anfänger-Themen 14
P CSV Datei in String Array -> Split -> New Array Java Basics - Anfänger-Themen 2
vandread String.split("\\") führt zu Error?! Java Basics - Anfänger-Themen 8
N String [][] mit .split Java Basics - Anfänger-Themen 13
B Array fehler bei string split Java Basics - Anfänger-Themen 4
L Methoden String.split nach Absätzen? Java Basics - Anfänger-Themen 8
S Split String für | Java Basics - Anfänger-Themen 2
R String Delimiter (Split) einlesen Java Basics - Anfänger-Themen 9
0 String split und replace geht nicht Java Basics - Anfänger-Themen 17
F String Split Problem mit "|" Java Basics - Anfänger-Themen 3
D String.split(...) Java Basics - Anfänger-Themen 4
J String split-Funktion und Integer Java Basics - Anfänger-Themen 13
S String - Gegenteil von Split? Java Basics - Anfänger-Themen 2
D String.split(".") geht nicht? Java Basics - Anfänger-Themen 3
Eldorado Fehler bei String.split Java Basics - Anfänger-Themen 4
S String Split ohne Zeichen abzuschneiden Java Basics - Anfänger-Themen 7
M String splitten mit split() Java Basics - Anfänger-Themen 4
S String split array.length Problem Java Basics - Anfänger-Themen 3
B String ordentlich trennen (regex, split())? Java Basics - Anfänger-Themen 11
J Problem mit Split und String Java Basics - Anfänger-Themen 3
M String.split() und StringTokenizer Java Basics - Anfänger-Themen 2
ARadauer String.split -> unterschiedliche längen Java Basics - Anfänger-Themen 2
I <String>.split()? Java Basics - Anfänger-Themen 2
I String, Split, match, wo liegt mein Fehler ? Java Basics - Anfänger-Themen 4
S Worthäufigkeiten zählen nach String.split() Java Basics - Anfänger-Themen 5
F String split-Methode Java Basics - Anfänger-Themen 12
Q String split bei "" Java Basics - Anfänger-Themen 4
G Problem mit String.split(""); Java Basics - Anfänger-Themen 2
C Collection in Verbindung mit String.split speicherlastig Java Basics - Anfänger-Themen 20
C String.split("") einzelne Positionen abfragen Java Basics - Anfänger-Themen 10
D String mit split teilen und leere Felder behalten Java Basics - Anfänger-Themen 4
O String mit split zerlegen Java Basics - Anfänger-Themen 6
G Split String Java Basics - Anfänger-Themen 2
G Habe bei String kein split()? Java Basics - Anfänger-Themen 7
B try & catch Problem mit Exception bzw String.split() Java Basics - Anfänger-Themen 5
G Brauche Hilfe, mit String.split() Java Basics - Anfänger-Themen 15
G String Split Java Basics - Anfänger-Themen 12
J Probleme bei String.split Java Basics - Anfänger-Themen 6
F string.split und regAusdruck Java Basics - Anfänger-Themen 4
S String.split("|") Java Basics - Anfänger-Themen 4
O eine frage/problem zu string.split() Java Basics - Anfänger-Themen 2
G String("AT") als StringObject-Variable deklarieren Java Basics - Anfänger-Themen 14
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
K String analysieren Java Basics - Anfänger-Themen 27
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
E String zerlegen aus args Java Basics - Anfänger-Themen 1
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
J String Filter Java Basics - Anfänger-Themen 5
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D 2D Char Array into String Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
I Zerlegen von String Java Basics - Anfänger-Themen 3
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
I String Java Basics - Anfänger-Themen 4
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben