我正在嘗試接受用戶輸入並進行修改,以便打印沒有任何元音的字符串。我已經能夠用下面的代碼成功地完成了。打印UI不使用元音使用循環不使用replaceAll();在Java中
Scanner in = new Scanner(System.in);
System.out.println("Enter a word: ");
String word = in.next();
String newString = word.replaceAll("[aeiouAEIOU]","1");
System.out.printf("%s", newString);
但是,我試圖通過使用沒有上述方法replaceAll()的循環來獲得相同的效果。我已經嘗試了另外一次,但在邏輯中混淆並重新啓動。我最近的嘗試是在下面,我不明白爲什麼它不能正常運行。我會輸入一個字符串,並且沒有任何錯誤信息,它將不會打印回任何東西。我得到它的工作的唯一的一次是當我給它的單個字符的字符串中找到使用類似
if(letter.contains("a"))
如果發現情況屬實,將打印回的串,但是,這並不適用於任何字符組合,只有單個字符。我的完整代碼如下。
import java.util.Scanner;
public class practice
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("Enter a word: ");
String word = in.next();
int i = 0;
while (i < word.length()){
String letter = word.substring(i, (i+1));
if(letter.contains("[bcdfghjklmnpqrstvwxyz]")){
System.out.printf("%s",letter);
}
i++;
}
}
}
我只是想找到一種方法來完成這個程序只使用條件,循環,UI,只有方法長度(),包含()或的indexOf()的charAt(),和子( X,Y)。預先感謝任何幫助,我希望我已經提供了足夠的信息。
下面是一些示例輸出:
Enter a word:
Jordan
我輸入的詞後,程序停止。
字符串' 「B」'(例如)不能包含字符串' 「bcdfghjklmnpqrstvwxyz」' 。太短了。 – ajb
對不起,我編輯並在我正在尋找的字母周圍添加[]。不幸的是仍然是同樣的錯誤,沒有得到任何輸出。我在問題中提供了一個示例輸出,希望能稍微澄清一點,謝謝。 –
'contains'不使用正則表達式,並且使用'[]'創建正則表達式。不過,你可以使用'contains()'來解決問題,並且我認爲你是在正確的軌道上,但是犯了一個小錯誤。您可以對原來的代碼進行簡單的更改(沒有'[]')。想一想。 – ajb