Java 更改字符串中单个单词的字母

Java 更改字符串中单个单词的字母,java,string,split,char,Java,String,Split,Char,我必须设计一个将英语转换成拉丁语的程序。我很难将用户提供的输入中包含的所有单词转换为拉丁语。使用当前代码,我实现了以下输出: 输入:这不起作用 输出:histay不工作 而我期望的输出是: 输入:这不起作用。 输出:Histay ishay otnay orkingway 我做错了什么?我只是在寻找一个正确的方向 public class piglatin { // A program designed to convert English words in to Pig Latin

我必须设计一个将英语转换成拉丁语的程序。我很难将用户提供的输入中包含的所有单词转换为拉丁语。使用当前代码,我实现了以下输出:

输入:这不起作用
输出:histay不工作

而我期望的输出是:

输入:这不起作用。
输出:Histay ishay otnay orkingway

我做错了什么?我只是在寻找一个正确的方向

public class piglatin {

    // A program designed to convert English words in to Pig Latin
  public static void main(String[] args) {

    char a, e, i, o, u, A, E, I, O, U, b;   
    String alphabet = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ";

    Scanner word = new Scanner (System.in);         
    System.out.println("Please enter a word: ");                
    String incoming = word.nextLine();              
    System.out.println("Input: " + incoming);

    String newincoming = incoming.substring(1); 
    String newerincoming = incoming.substring(0,1);

    a = alphabet.charAt(0);
    e = alphabet.charAt(8);
    i = alphabet.charAt(16);
    o = alphabet.charAt(28);
    u = alphabet.charAt(40);
    A = alphabet.charAt(1);
    E = alphabet.charAt(9);
    I = alphabet.charAt(17);
    O = alphabet.charAt(29);
    U = alphabet.charAt(41);
    b = incoming.charAt(0);         

    if ((b == a) || (b == e) || (b == i) || (b == o) || (b == u) || (b == A) || (b == E) || (b == I) || (b == O) || (b == U)) {             
      System.out.println("Output: " + incoming + "hay");
    } else {  
      System.out.println("Output: " + newincoming + newerincoming + "ay");
    }
  }     
}

输入:这不起作用
输出:his不工作

你在阅读整行文字,并将“猪拉丁语”规则应用于整个句子。这将删除句子的第一个字母,并将其放在最后一个单词的末尾


为了实现这一点,您需要在空格周围输入字符串,并将pig拉丁语规则应用于循环中的每个单词。我建议创建一个将字符串作为输入并进行pig拉丁转换的方法。这样,您只需对
split
方法返回的数组中的每个单词调用该方法。

我觉得在这些声明中使用字符常量比在字母表中使用索引查找更容易。pig拉丁语的正确翻译不是“Isthay isway otnay orkingway”吗?你在用什么规则翻译成拉丁语?我最后用for循环拆分了字符串,解决了我的问题。非常感谢。