2012-04-24 4 views
0

私は特定の.edu電子メール(abc.eduなど)がある場合にのみ、ユーザーがアカウントに登録できるようにするアプリケーションをAndroidで作成しています。私はこれを確認するいくつかのコードを書くようになったが、今これを簡単にする方法があるかどうか疑問に思う。私は初心者のJava/Programmingコースを受講しているだけなので、私がやっていることがこれについて完全に間違っているのかどうかはわかりません。ここで電子メールの内線番号を確認する最も効率的な方法

は私の擬似コードです:

if (email.endsWith("abc.edu") { ... } 

を編集可能にしている場合、あなたは可能性:

Get length of inputted email. 
if (
email.charat(length)-1 = u && 
email.charat(length)-2 = d && 
email.charat(length)-3 = e && 
email.charat(length)-4 = . && 
email.charat(length)-5 = c && 
email.charat(length)-6 = b && 
email.charat(length)-7 = a) 

Success 
else 
Not a valid email 
+0

*効率的*を探して、* readable *と* maintainable *を探してはいけません。そして、上記はそうではありません... –

答えて

3

JavaのStringクラスには、使用することができendsWith方法があり

if (email.toString().endsWith("abc.edu")) { ... } 

大文字と小文字を区別しない場合は、次のようにします。

if (email.toString().toLowerCase().endsWith("abc.edu")) { ... } 
+0

うーん...私は編集可能なクラスを使用しており、 'endsWith'クラスをサポートしていないようです。私はユーザー入力からテキストを取得しているので、 "文字列"ではなく "編集可能"を使用する必要があります。 – EGHDK

+0

@EGHDK:編集済み。擬似コードは機能し、比較したい文字のリスト(または文字列)と、長い比較チェーンではなくループを使用することで、少し一般的になります。 – Mat

+0

ありがとう、それは動作します!最後に、ignoreCase関数を実装する方法を知っていますか?大文字のABCを使用すると、関数はスローされますが、小文字のabcは現在機能します。再度ありがとう – EGHDK

関連する問題