String splitten beim wechsel vom buchstabe zu zahl!

tanzverfuehrung

Bekanntes Mitglied
BITTE UM DRINGENDE HILFE
ich soll einen String splitten und dann soll er sortiert werden!
das sortieren funktioniert alles aber die split funktion noch nicht ganz!

am anfang wollte ich nur wenn ein leerzeichen oder ein "/" den String splitten

da ging es ganz einfach so
Java:
Pattern p = Pattern.compile("[/ ]");
			return p.split(text);


aber nun muss ich den String untersuchen,wenn vom buchstaben zur zahl wechselt(auch ohne leerzeichen) soll der string gesplittet werden.
ich sitze da jetzt schon 4 stunbden dran und verzweifel langsam
habe alles mögliche ausprobiert...
mit Pattern, mit Tokenizer und mit String MEthoden:shock::bahnhof:
aber irgendwie will es nicht!;(;(

ein beispiel für ein Junit Test!
Java:
@Test
	public void AllIsDifferent() throws Exception {
		list= asList("z1", "haus4", "z25", "haus1", "Haus3", "Haus1", "Haus12");
		
		Collections.sort(list,PART_COMPARATOR);
		
		assertThat(list,contains("Haus1",
								 "haus1",
		                         "Haus3",
		                         "haus4",
		                         "Haus12",
		                         "z1",
		                         "z25"));
	}

so das halt die zahlen und die buchstaben getrennt betrachtet werden!
also das die zahlen nicht gesplittet werden!sondern nur zahlen von buchstaben und andersrum!

BITTE UM DRINGENDE HILFE
 
Zuletzt bearbeitet:
Meinst du vllt so?
Java:
    public static void main(String[] arg) {
    	String s = "Hallo123123Test";
    	Matcher m = Pattern.compile("[A-Za-z]+|\\d+").matcher(s);
    	while (m.find()) {
    		System.out.println(m.group());
    	}
    }

edit:
BITTE UM DRINGENDE HILFE

hätte ich das vorher gelesen, hätte ich nicht gepostet. würde sowas lassen. wirkt eher kontraproduktiv..
 
Zuletzt bearbeitet:
Meinst du vllt so?
Java:
    public static void main(String[] arg) {
    	String s = "Hallo123123Test";
    	Matcher m = Pattern.compile("[A-Za-z]+|\\d+").matcher(s);
    	while (m.find()) {
    		System.out.println(m.group());
    	}
    }

edit:


hätte ich das vorher gelesen, hätte ich nicht gepostet. würde sowas lassen. wirkt eher kontraproduktiv..


ja ok tut mir leid aber ich mein der forum ist doch zum helfen da oder nicht?!
???:L

naja wie auch immer.danke schon mal für deine hilfe...
aber sehe nicht so wirklich durch was du tust!
kannst du mir da eventuell kommentare zuschreiben?
dass ich das in meine methode besser einfügen kann!?
also ich meinte genau das! aber geht nocht nicht so wirklich in meiner methode
Java:
	/**
	 * Teilt den Text in einzelne Strings zum vergleichen beim wechsel von Buchstaben in Zahlen und anders herum.
	 * 
	 * @param text
	 * @return gesplitteter String
	 */
	private String[] split(String text) {

		Matcher m = Pattern.compile("[A-Za-z]+|\\d+").matcher(text);
        while (m.find()) {
            System.out.println(m.group());
           
        }
		 return split(m.group());
	}
}

danke trozdem schon mal😉
 
Zuletzt bearbeitet von einem Moderator:
so könnte das vllt in einer methode aussehen:

Java:
	private String[] split(String text) { 	
		Matcher m = Pattern.compile("[A-Za-z]+|\\d+").matcher(text);	
		List<String> list = new ArrayList<String>();
		while (m.find()) {
			list.add(m.group());
		}
		return list.toArray(new String[list.size()]);
	}
 
so könnte das vllt in einer methode aussehen:

Java:
	private String[] split(String text) { 	
		Matcher m = Pattern.compile("[A-Za-z]+|\\d+").matcher(text);	
		List<String> list = new ArrayList<String>();
		while (m.find()) {
			list.add(m.group());
		}
		return list.toArray(new String[list.size()]);
	}



genau das brauchste ich!jetzt klappt es endlich!
ich DANKE dir für deine hilfe!!!!!!!


jetzt muss ich es nur noch verstehen😉
 

Zurück
Oben