Pig Latin没有打印所有文本的问题

时间:2015-06-24 01:29:15

标签: java jgrasp

所以我刚接触编码,我遇到了一些问题...我的程序应该要求用户输入,并且需要假设所有输入都是小写的...并且需要假设没有额外的空格,并且需要假设它以句点结束。该程序然后将文本翻译成猪拉丁语...只是如果单词用元音打字,添加短划线和“方式”到最后,你需要猪拉丁的规则...否则,添加破折号将第一个字母移到最后,并添加“ay”...现在我知道我的代码可以更好但我只是想让它先运行然后如果我需要也改变它。所以我的问题是代码运行但除了第一个单词之外它不会打印出任何文本。而其他文本也必须在猪拉丁语中,我之前粘贴过代码。所以任何帮助都会很棒......谢谢。

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

     Scanner scanner = new Scanner(System.in);
     String text, pigLatin;
     char first;

     System.out.print("Enter a line of text: ");
     text= scanner.next();

     first = text.charAt(0);

     if (first == 'a' || first == 'e' || first =='i'||
         first == 'o' || first == 'u')
         pigLatin = text + "-way";

     else
         pigLatin = text.substring(1) + "-" + text.charAt(0) + "ay";

     System.out.println("Input : " + text);
     System.out.print("Output: " + pigLatin);
  }
}

我的输出

输入一行文字:这是一个文字。

输入:这个

输出:他的 -

2 个答案:

答案 0 :(得分:0)

text= scanner.next();

scanner.next()方法返回“下一个标记”,在这种情况下可能意味着“下一个字”。 由于您的变量text仅包含输入句子中的1个单词,因此您的其余代码将使用该单词。

您可能需要创建一个循环,从next()读取多次,或者使用除next()以外的其他内容来读取完整的文本行,然后将其拆分为单词并将pig latin应用于每个单词。< / p>

nextLine()方法可能很有用(但我不能肯定地说,我已经很久没用过了)。

要将一行文字拆分为单个字词,请查看How to split a string in Javahttp://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)

答案 1 :(得分:0)

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

   Scanner scanner = new Scanner(System.in);
   String text, pigLatin;
   char first;

   System.out.print("Enter a line of text: ");
   text= scanner.nextLine();
   first = text.charAt(0);

   if (first == 'a' || first == 'e' || first =='i'||
       first == 'o' || first == 'u') 
       pigLatin = text + "-way";

   else
       pigLatin = text.substring(1) + "-" + text.charAt(0) + "ay";

   System.out.println("Input : " + text);
   System.out.print("Output: " + pigLatin);
}
}