【问题标题】:Converting words to Pig Latin将单词转换为 Pig Latin
【发布时间】:2016-01-13 09:01:40
【问题描述】:

我希望这会找到你。

我对 Java 和这个网站都很陌生。虽然这可能看起来很长,但我只需要两件事的帮助,所以请帮忙,就像我说的我对这一切都很陌生,所以越彻底越好。我必须做一个项目,我们必须将常规英语单词转换成猪拉丁语。我错过了我们的讲师想要添加的一些内容。他是我现在的代码。

import java.util.Scanner;
public class PigLatin 
{
public static void main(String[] args) 
{
Scanner sc = new Scanner(System.in);
final String vowels = "aeiouAEIOU";
System.out.println("Enter your word.");
String word = sc.nextLine();
while (!word.equalsIgnoreCase("done"))
{
String beforVowel = "";
int cut = 0;
while (cut < word.length() && !vowels.contains("" + word.charAt(cut)))
{
beforVowel += word.charAt(cut);
cut++;
}
if (cut == 0)
{
cut = 1;
word += word.charAt(0) + "w";
}
System.out.println(word.substring(cut) + beforVowel + "ay");
System.out.println("Enter your word.");
word = sc.nextLine();
}
}
}

我似乎无法实现的代码是“如果单词没有元音,则打印“INVALID””,例如,如果我在此代码中输入 bcdfgh,它会读回 bcdfgh ay。但它应该说无效

我无法添加代码的另一件事是“如果第一个元音是“u”,而它之前的字母是“q”,那么“u”也会出现在单词的末尾。”例如,如果我在此代码中输入有问题的内容,它会显示为 uestionqay。但我想让它说 estionquay。

谢谢你

【问题讨论】:

  • 我看到你拒绝了我的编辑。这是为什么?我只是想帮忙。
  • 我很抱歉,我认为这些编辑是计算机生成的,其中一个编辑完全改变了我想说的话。如果我知道有用户编辑过它,我永远不会拒绝它。再次抱歉

标签: java converter words jgrasp latin


【解决方案1】:

嘿,所以我为你编写了一些代码......

import java.util.Scanner;

public class PigLatin 
{
    public static void main(String[] args) 
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter your word.");
        String word = "";
        word = sc.nextLine();
        do
        {
            if(word.length() > 0)
            {
                if(containsVowels(word.substring(0,1)))
                {
                    System.out.println(word+"way");
                }
                else
                {
                    if(containsVowels(word))
                    {
                        System.out.println(word.substring(1,word.length())+word.substring(0,1)+"ay");
                    }
                    else
                        System.out.println("INVALID");
                }
            }
            System.out.println("Enter your word.");
        }
        while(!((word = sc.nextLine()).equalsIgnoreCase("done")));
        sc.close();
    }

    public static boolean containsVowels(String word)
    {
        String[] vowels = {
                "a","e","i","o","u"
        };
        for(int i = 0; i < vowels.length; i++)
        {
            if(word.contains(vowels[i]) ||  word.contains(vowels[i].toUpperCase()))
                return true;
        }
        return false;
    }
}

这不能解决您的问题

“我无法添加代码的另一件事是“如果第一个元音是“u”,而它之前的字母是“q”,那么“u”也会出现在单词的末尾。”对于例如,如果我在此代码中输入有问题的内容,它会读取 uestionqay。但我希望它说 estionquay。"

您必须自己尝试这样做 :) 我可以查看您所做的事情,看看它是否有效,但我希望看到您尝试这样做。

【讨论】:

  • 非常感谢。我真的不能感谢你。我会在再处理一段时间后回复你,再次感谢你
  • @user10101010 没问题,如果您愿意,请将其标记为答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-02
相关资源
最近更新 更多