Leerzeichen in EditText abfragen

  • Antworten:4
Parks
  • Forum-Beiträge: 1

17.02.2013, 14:27:48 via Website

Hallo,

ich bin ganz neu beim Programmieren. Ich bin gerade dabei ein obligatorische Hallo Welt App zu schreiben und spiele ein bisschen mit den Möglichkeiten.
Ich habe ein EditText-Feld, in das der Vor- und Nachname mit Leerzeichen getrennt eingetragen werden soll. Vor- und Nachname sollen jeweils mindestens ein Zeichen lang sein, diese Abfrage hab ich so aus einem Buch übernommen:
1input.addTextChangedListener(new TextWatcher() {
2 public void onTextChanged(CharSequence s, int start,int before,int count) {
3
4 }
5
6 public void beforeTextChanged(CharSequence s, int start, int count, int after) {
7
8 }
9
10 public void afterTextChanged(Editable s) {
11 button.setEnabled(s.length() > 0);
12 }
13 });
14 button.setEnabled(false);

Wie kann ich zusätzlich abfragen, ob zwischen Vor- und Nachname ein Leerzeichen ist und keines am Anfang oder Ende?

Danke schonmal,
Parks

Antworten
Chris B.
  • Forum-Beiträge: 11

17.02.2013, 15:12:30 via Website

Hi!

Hol Dir doch den String aus dem EditText, mach ein .trim() und dann indexOf(' '):

1String text = " Hans Mustermann ";
2String getrimmt = text.trim();
3System.out.println(getrimmt);
4System.out.println(getrimmt.indexOf(' '));

Unschön daran ist das mehrere Leerzeichen zwischen dem Vor- und Nachnamen erhalten bleiben.

Antworten
cryofy
  • Forum-Beiträge: 47

17.02.2013, 15:21:13 via Website

Hey Parks,

Du könntest z.B. eine Regular Expression verwenden, z.B.: diese hier: ^\w+\s\w+
Testen kannst Du regexps, z.B. hier: http://regexpal.com/

Kleiner Tipp aus meiner Erfahrung:
Aus Nutzersicht ist ein Eingabefeld mit der Bezeichnung 'Name', welches dann einen Vor- und Nachnamen mit einer bestimmten Formatierung z.B: "VornameWhitespaceNachname" voraussetzt suboptimal und teilweise auch verwirrend. Habe da schon Nutzeranalyse-Videos von Nutzern aus Ländern gesehen, in denen Mittelnamen oder auch ganz andere 'Namenskonstrukte' geläufig sind. Hier hast du dann z.B. eine um x% höhere Drop-out-Rate z.B. bei einer einfachen Nutzererstellung im Vergleich zu anderen Ländern.
Ist immer besser zu trennen in: ein Feld für den Vor- und eines für den Nachnamen. Ist dann auch einfacher für Dich, muss nur noch überprüfen: "steht da was drin"?

Gruß
Paul

Antworten
Mad max
  • Forum-Beiträge: 2

18.02.2013, 20:07:46 via Website

Ich mach das immer so:

1String text = " Hans Mustermann ";
2if(text.trim().contains(" ")) {
3// String enthält Leerzeichen
4} else {
5// Kein Leerzeichen
6}

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

18.02.2013, 23:52:56 via Website

Das Konzept ist fehlerhaft und wird durch manigfaltige Lösungsansätze nicht besser.

Was wenn der User "Dr. Hans Jürgen Müller von Lüdenscheidt" heisst?
Hat der dann verloren und darf deine App nicht benutzen?

Antworten