簡體   English   中英

檢查字符串數組的第一個字符

[英]Checking First Character of String Array

我正在嘗試創建一種方法,該方法將掃描用戶輸入的數組的第一個字符,並查看它是否是元音,但是我有幾個問題。 這是我到目前為止的代碼:

public static void main (String args[])
{
    String[] input= new String [5];
    Scanner scan=new Scanner(System.in);
    System.out.println("Please enter your words...");
    for(int j=0;j<5;j++)
    {
        a[j]=scan.next();
    }

 }
  1. 忽略5的數組大小。我如何使用戶可以添加任意數量的單詞? 我是否應該添加“完成時輸入q”和while(j!='q'); 我應該如何設置數組大小?

  2. 這項工作可以檢查輸入的每個數組的第一個字符:

if ((input[j].charAt(0)=='a')||(input[j].charAt(0)=='e')||(input[j].charAt(0)=='i')|| (input[j].charAt(0)=='o')||(input[j].charAt(0)=='u'))

提前致謝

  1. 使用ArrayList
  2. 試試吧。 還可以考慮使用startsWith()
  1. 簡單的答案是使用任何List類。 例如ArrayListLinkedList

  2. 提示:

    • 大寫字母怎么辦?
    • 帶有重音符號的字符呢?
    • 如果要使用這樣的復雜表達式,請考慮使用臨時變量

1:對於數組,請使用ArrayList,它具有動態大小。

List<String> input = new ArrayList<>();

要添加一些東西:

input.add(scan.next());

2:是的,這就足夠了。

List<Character> vowels = Arrays.asList('a','e','i','o','u');
if(vowels.contains(input[j].charAt(0))) {...}

如果您不知道先驗將輸入多少個字符串,那么解決方案是使用動態數據結構,例如列表:

List<String> input = new ArrayList<String>();
input.add(scan.next());

檢查字母是否是元音是典型的事情,可以使用實用程序功能將行為分開來解決:

boolean isVowel(char c) {
  switch (Character.toLowercase(c)) {
    case 'a':
    case 'e':
    case 'i':
    case 'o':
    case 'u':
      return true;
    default: return false;
  }
}

boolean startsWithVowel = isVowel(input.get(0).charAt(0))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM