public final void nameErrorLoop() {
while (error) {
System.out.println("Enter the employee's name.");
setName(kb.next());
if (name.contains("[A-Za-z]")) {
error = false;
}
else {
System.out.println("The name can only contain letters.");
}
}
error = true;
}
儘管在不同的方法中使用了類似的設置,但由於if語句始終爲false,因此此方法會停留在常量循環中。我已經試過.matches()
,而且我在Interent上發現的東西迄今爲止都沒有幫助。任何想法爲什麼?感謝您的幫助提前。String.contains總是顯示爲假
編輯:我剛剛注意到我在整理項目,即試圖打印「姓名」後只顯示名字,最後從不打印。有什麼辦法可以讓'name'字符串包含這兩個字符?
此外,在美國至少,有些地方有鬆懈[法律](HTTP://en.wikipedia。 org/wiki/Naming_law)關於虐待兒童的命名,並允許數字和其他古怪:「......一些州禁止使用數字或象形圖,一些州禁止使用淫穢,還有一些州,肯塔基州例如,沒有任何命名法。「 – azurefrog 2014-10-30 23:05:46
工作完美,謝謝你的詳細解釋。只要它允許我將它標記爲答案。 – DJOwen 2014-10-30 23:06:08
@azurefrog:好點。我想這真的取決於上下文... – 2014-10-30 23:06:46