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

时间:2012-10-22 19:01:25

标签: java string split char

我必须设计一个将英语转换为Pig Latin的程序。我很难将用户提供的输入中包含的所有单词转换为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");
    }
  }     
}

1 个答案:

答案 0 :(得分:3)

输入:这不起作用 输出:他的工作不正常

您正在阅读整篇文章并使用" pig latin"统治整个句子。这将删除句子的第一个字母,并将其放在最后一个单词的末尾。

为了使其正常工作,您需要split围绕空格的输入字符串,并将pig latin规则应用于循环中的每个单词。我建议创建一个方法,将String作为输入并进行猪拉丁转换。这样你只需要调用split方法返回的数组中每个单词的方法。