我被困在这段代码上。

该代码应使用StringBuilder类,通过将其参数中的非元音字符附加到返回的结果中来构建输出字符串。它需要使用我创建的辅助方法(公共布尔isVowel(char c))来识别要删除的元音。

public String shorthand(String in)这是我需要帮助的方法。我已经创建了stringbuilder,但是if条件不接受isVowel方法。

import java.io.*;
import java.util.*;


public class Shorthand
{

    public boolean isVowel(char c)
   {

       if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || c == 'A'|| c == 'E'||c == 'I'|| c == 'O'|| c == 'U')
       {
           return true;
       }
       else
       {
           return false;
       }
   }

    //TODO Complete the shorthand method
    public String shorthand(String in) //this is the code I need help with
    {
      StringBuilder vowel = new StringBuilder();

      if (isVowel() == false)
      {
        vowel.append(in);
       }
          return vowel.toString();
    }

    //TODO Complete the run method
    public void run() throws IOException
    {
       String yourLine;
       Scanner sc = new Scanner(System.in);
       yourLine = sc.nextLine();
       while(!yourLine.equals("*"));
       {
            System.out.println("Enter your line of text");
       }
       yourLine = sc.nextLine();
    }
}

最佳答案

您没有传递isVowel()的char c参数

尝试这个:

public String shorthand(String in) {
        StringBuilder vowel = new StringBuilder();

        for (char c : in.toCharArray()) {
            if (!isVowel(c)) {
                vowel.append(c);
            }
        }

        return vowel.toString();
}


编辑:您的run()方法似乎有点奇怪...

也许以下是您想要的?

public void run() throws IOException
{
    String yourLine;
    Scanner sc = new Scanner(System.in);
    while (!sc.nextLine().equals("*")) {
        System.out.println("Enter your line of text");
    }
}


附带说明,它甚至不调用shorthand()方法。

关于java - public String简写形式(String in),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2760776/

10-11 01:29