# String splitten beim wechsel vom buchstabe zu zahl!



## tanzverfuehrung (29. Mrz 2011)

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

```
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!

```
@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


----------



## nrg (29. Mrz 2011)

Meinst du vllt so?

```
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:


tanzverfuehrung hat gesagt.:


> BITTE UM DRINGENDE HILFE



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


----------



## tanzverfuehrung (29. Mrz 2011)

nrg hat gesagt.:


> Meinst du vllt so?
> 
> ```
> public static void main(String[] arg) {
> ...




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

```
/**
	 * 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


----------



## bone2 (29. Mrz 2011)

tanzverfuehrung hat gesagt.:


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



gerade weil ein forum zum helfen da ist und das jeder weiß,

ist es nicht nötig
 DAS GROß UND ROT DAZUZUSCHREIBEN


wie dir vlt auffält ist da ein 
	
	
	
	





```
|
```
. das ist ein "oder", er gibt also buchstaben oder zahlen zurück, nie beides
Regulärer Ausdruck ? Wikipedia


----------



## tanzverfuehrung (29. Mrz 2011)

bone2 hat gesagt.:


> gerade weil ein forum zum helfen da ist und das jeder weiß,
> 
> ist es nicht nötig
> DAS GROß UND ROT DAZUZUSCHREIBEN




ich habs ja verstanden!:autsch::bae:


----------



## bone2 (29. Mrz 2011)

hilfe reineditiert, siehe letzter post


----------



## nrg (29. Mrz 2011)

so könnte das vllt in einer methode aussehen:


```
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()]);
	}
```


----------



## tanzverfuehrung (29. Mrz 2011)

nrg hat gesagt.:


> so könnte das vllt in einer methode aussehen:
> 
> 
> ```
> ...





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


jetzt muss ich es nur noch verstehen


----------



## chalkbag (29. Mrz 2011)

Vielleicht hilft dir das ja

Einfaches Tutorial zu Regex

Tutorial Reguläre Ausrücke - Daniel Fetts Homepage


----------

