2016-07-09 17 views
2

Ich habe ein Eingabefeld, wo der Benutzer seinen Vornamen und seinen Nachnamen eingeben muss. Nun möchte ich prüfen, ob es einen Whitespace gibt, der weder am Anfang noch am Ende der Eingabe steht. Nur in diesem Fall ist eine Schaltfläche aktiviert.Android EditText: Überprüfen, ob Leerzeichen nicht am Anfang oder Ende

die Leerzeichen Überprüfung ist einfach:

private EditText input; 
input = (EditText) findViewById(R.id.input); 

if(input.getText().toString().contains(" ")) { 
    button.setEnabled(true); 
} 

Aber wie kann ich sicherstellen, dass die Leerzeichen nicht am Anfang oder Ende des Eingangs ist?

Danke für Ihre Hilfe

Antwort

3

Try this:

String str = input.getText().toString(); 
if (str.contains(" ") && (!str.startsWith(" ") && !str.endsWith(" "))) 
    button.setEnabled(true); 

bearbeitet oder

if (!(Character.isWhitespace(str.charAt(0)) && Character.isWhitespace(str.charAt(str.length()-1)))) 
    button.setEnabled(true); 

Sie können auch eine Kombination von trim() und contains verwenden:

if(str.trim().contains(" ")) 
    button.setEnabled(true); 
+0

Für wen hatte Abstimmung meine Antwort runter. Können Sie Ihren Grund bitte erklären? –

+0

Hilft nicht wirklich, weil dieser Code nur prüft, ob es nur Leerzeichen gibt. – erik4thewinners

+0

dies schneidet nur die Whitespaces aus –

-1
result = input.getText().toString(); 
if(result.subString(0,1) == " "){ 
... 
    } 
if(result.substring(result.length() - 0) == " "{ 
... 
} 

Ich hoffe, das

0

hilft Sie müssen etwas tun, wie diese

Code

if(input.getText().toString().substring(0,1).contains(" ")) 
    System.out.println("failed"); 
else if((input.getText().substring((input.getText().length() -1),(input.getText().toString().length())).contains(" "))) 
    System.out.println("failed"); 
else 
    System.out.println("success"); 

Ich hoffe, das hilft Ihnen

+0

danke für das Kopieren –

+1

Nein, ich bin nicht. Sogar mein Code ist besser. –

+0

Ja, sorry, ich übertrete. Wenn Sie jedoch '.length() -1 'verwenden, wird das Zeichen vor dem letzten Zeichen angezeigt. –

0

Versuchen Sie das.

String input = textview.getText().toString(); 

if(input.subString(1,input.length()-1).contains(" ")) 
    button.setEnabled(false); 
else 
    button.setEnabled(true); 
Verwandte Themen