2015-11-13 2 views
0

Я пытаюсь вызвать метод java, чтобы определить, является ли введенное пользователем письмо гласным или согласным. Не знаете, как правильно вызвать метод.Invoke Java Method

import java.util.*; 
public class HW8Problem1{ 
    public static void main(String[] args) { 

     Scanner input = new Scanner(System.in); 

     System.out.print("Enter a letter: "); 

     String letter = input.nextLine(); 

    } 

    public static void vowel(String a){ 

     if (a.charAt(0) == 'a' || a.charAt(0) == 'A'){ 
     System.out.println(" is a vowel"); 

     if (a.charAt(0) == 'e' || a.charAt(0) == 'E') 
      System.out.println(" is a vowel"); 

     if (a.charAt(0) == 'i' || a.charAt(0) == 'I') 
      System.out.println(" is a vowel"); 

     if (a.charAt(0) == 'o' || a.charAt(0) == 'O') 
      System.out.println(" is a vowel"); 

     if (a.charAt(0) == 'u' || a.charAt(0) == 'U') 
      System.out.println(" is a vowel"); 

     else 
      System.out.println(" is a consonant");  

     } 
    } 
} 
+0

Как вы думаете, что вы делаете, когда пишете 'input.nextLine()' или 'System.out.print (« Введите букву: »);' или 'a.charAt (0)'? Что ваш метод ожидает в качестве аргумента? Просто предоставьте это. –

+0

Боковое примечание: как насчет '' Y "'? – Tunaki

+0

https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html –

ответ

2

Вы можете вызвать метод, указав его имя следуют скобки (()), которые содержат аргументы, которые вы хотите передать методу, если таковые имеются. В вашем случае т.д .:

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    System.out.print("Enter a letter: "); 
    String letter = input.nextLine(); 
    vowel(letter); // Here! 
} 
+0

Это должно быть сделано. Это может выглядеть немного лучше, если вы создадите «Список» ваших гласных, а затем просто проверьте «if (list.contains (a.charAt (0))» вместо нескольких проверок для каждой буквы. Это займет всего несколько линии вместо ваших 10 + линий. (Это направлено на OP btw) –

2

Как сказал Mureinik, вы можете вызвать метод с использованием vowel(line);
Но видя свой код, я хотел бы предложить еще улучшения. Всегда старайтесь не повторять себя. Вы видите, как вы повторяете почти ту же часть кода несколько раз? Удалить дубликаты и создать метод по-разному, например .:

private static boolean isVowel(String line) { 
    line = line.toLowerCase(); 
    return line.equals("a") || line.equals("e") || line.equals("i") || line.equals("o") || line.equals("u"); 
} 

, а затем в методе main просто напечатать

System.out.println(isVowel(line) ? " is a vowel" : " is a consonant"); 

Обратите внимание, что это решение предполагает, что line не null и line.length() == 1. Попробуйте самостоятельно выполнить обработку параметров ввода, чтобы не передавать слова в метод isVowel().

+0

Я попробую это, спасибо! – Kyle