【问题标题】:Java Pig Latin program for schoolJava Pig 拉丁语学校课程
【发布时间】:2020-12-15 08:10:50
【问题描述】:

我的学校作业有问题。我们应该编写一个程序,允许用户输入一个句子,然后将其翻译并以 Pig Latin 显示。显示屏将在左侧显示原始单词,然后是选项卡,最后是翻译后的单词。我被困在第一个元音前面的字符移动到单词末尾的部分。例如,在“trouble”这个词中,我不知道如何将“tr”移动到词尾以使其成为“oubletr”。我将不胜感激任何可以为我指明正确方向的帮助。以下是我目前的代码。

import java.util.Scanner;

公共类 PigLatinTranslator {

public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    //Declare string for userSentence and pigLatin
    String userSentence; 

    //Assign vowels to char
    char a = 'a';
    char e = 'e';
    char i = 'i';
    char o = 'o';
    char u = 'u';

    //Ask user for input and save to userSentence variable
    System.out.println("Enter a sentence: ");
    userSentence = input.nextLine();

    //Split the userSentence into an array
    String[] userWords = userSentence.split(" ");

    //This will go through the words and locate vowels
    for(int k = 0; k < userWords.length; k++) {

        //Change letters in userWords to lower case
        String temp = userWords[k].toLowerCase();
        char c = temp.charAt(0); 

            //If first character is equal to a vowel
            if(c == a || c == e || c == i || c == o || c == u) {
                System.out.println(temp + "\t" + temp + "way");
                }

            else {
                //print the ones that start with a consonant
                System.out.println(temp + "\t" + temp + "ay");
            }
    }
}

}

【问题讨论】:

  • 我不知道什么是猪拉丁语,也不知道你想在这里做什么。
  • Tyler Drinski - 如果其中一个答案解决了您的问题,您可以通过将其标记为已接受来帮助社区。接受的答案有助于未来的访问者自信地使用该解决方案。查看meta.stackexchange.com/questions/5234/… 了解如何操作。
  • @m0skit0 - igpay atinlay isway away umerousha ofway eakingspay。 inklay.

标签: java


【解决方案1】:

您可以更轻松地使用 contains() 方法,这样您就不必执行两个循环...

String vowels = "aeiou"; // idk if y counts who cares
String message = "trouble";

for (int letter = 0; letter < message.length(); letter++) {
  if (vowels.contains("" + message.charAt(letter))) {
    message = message.substring(letter) + message.substring(0, letter);
    break;
  }
}

System.out.println(message); // oubletr

【讨论】:

    【解决方案2】:

    例如,在“麻烦”这个词中,我无法弄清楚如何移动 'tr' 到单词的末尾以使其成为“oubletr”。

    按如下方式进行:

    class Main {
        public static void main(String[] args) {
            String str = "trouble", newStr = "";
            String strLowerCase = str.toLowerCase();
            for (int i = 0; i < str.length(); i++) {
                char ch = strLowerCase.charAt(i);
                if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
                    newStr = str.substring(i) + str.substring(0, i);
                    break;
                }
            }
            System.out.println(newStr);
        }
    }
    

    输出:

    oubletr
    

    注意事项:

    1. 将字符串转换为小写,并将其字符与小写元音字母(即aeiou)进行比较。或者,您可以将字符串转换为大写,并将其字符与大写元音字母(即AEIOU)进行比较。
    2. String::substring(start) 返回一个字符串,其中所有字符都从索引 start 开始。 String::substring(start, end) 返回一个字符串,其中包含从索引 start 到索引 end - 1 的所有字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-11
      • 1970-01-01
      • 2011-02-17
      • 2013-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-05
      相关资源
      最近更新 更多