Я хочу выбрать слова из списка слов, когда нет гласного до заданного числа символов - PullRequest
0 голосов
/ 17 июня 2011
class Test{   
    public static void main(String[] args) {     
        String line = "ALONE AMEND DATES DAWNS DEALS LEMON LENDS";
        int maxVowelAtChar = 4;     

        // need the help for this function.  
        String pure = myFunc(line, maxVowelChar);  
        System.out.println(pure);   
    }
} 

Теперь должно появиться:

РАССВЕТНЫЕ ЛЕНДЫ

После maxVowelAtChar не должно быть гласных.отсчет начинается с последнего символа слова.«ALONE» не подходит, так как имеет гласный на 1-м и 3-м знаках, аналогично «LEMON» имеет гласный на 2-м. «DAWNS» квалифицируется, поскольку не имеет гласных до 3-х символов (4-й - A).Помогите мне, пожалуйста.

1 Ответ

0 голосов
/ 17 июня 2011

РЕДАКТИРОВАНИЕ: Этот код соответствует установленным требованиям. Изменен счет от конца назад.

Прежде чем критиковать, ознакомьтесь с примечаниями ниже.

public static void main(String[] args)
{
    String line = "ALONE AMEND DATES DAWNS DEALS LEMON LENDS";
    for (int maxVowelAtChar = 1; maxVowelAtChar < 6; maxVowelAtChar++)
    {
        String pure = myFunc(line, maxVowelAtChar);
        System.out.println(maxVowelAtChar + ": " + pure);
    }
}

private static String myFunc(String line, int maxVowelAtChar)
{
    String pure = "";

    for (String word : line.split("\\s"))
    {
        // This regex is also sensitive to word length ie not being 5 like all test data
        if (word.matches("^.{" + (word.length() - maxVowelAtChar + 1) + "}[^aeiouAEIOU]*$"))
            pure += word + " ";
    }

    return pure.trim();
}

Output:
1: ALONE AMEND DATES DAWNS DEALS LEMON LENDS
2: AMEND DATES DAWNS DEALS LEMON LENDS
3: AMEND DAWNS DEALS LENDS  
4: DAWNS LENDS
5: 

Этот код был упрощен для иллюстрации сути решения. «Реальный» код будет использовать StringBuffer вместо String += String.

То, что делает эту работу, это динамическое регулярное выражение, переданное в matches, что означает «должен заканчиваться n не гласными»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...