引用字符串数组中的前一个字符串

时间:2014-05-10 22:24:57

标签: java arrays

我对Java很陌生,而且我在使用数组时遇到了麻烦。这是我现在的代码。

String english = "hip-hop";
    String[] words = english.split ("[\\s+]|(?<=-)|(?=-)");
    String[] latin = new String [words.length];
    String phrase = "";

    for (int i = 0 ; i < words.length ; i++)
    {
        int k;
        k = words.length - 1;

         latin [i] = words [i]; //stays the same
        if ((words [i].charAt (0) == '-') || (words [k].equals("-") == true)) //PROBLEM RIGHT HERE
        {
            phrase = phrase + latin [i]; //add latin to previous phrase
        }
        else
        {
            phrase = phrase + " " + latin [i]; //add latin to previous phrase
        }
    }
    System.out.println (phrase);

所以这个节目的输出是:hip-hop
正确的输出应该是:hip-hop
我知道打破嘻哈然后重新组合它似乎毫无意义,但这对我正在创造的猪拉丁翻译来说是一件小事。 这里的代码正确编译。

我创建了int k,这样如果数组中的前一个单词等于&#34; - &#34;,那么当latin被添加到短语中时,就不会出现空格。

非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

您永远不会更新k的值,因此前一个单词的检测等于-将永远不会评估为true。相反,只需使用变量来跟踪前一个单词。

String english = "hip-hop";
String[] words = english.split("[\\s+]|(?<=-)|(?=-)");
String[] latin = new String[words.length];
String phrase = "";

String previousWord = "";
for (int i = 0; i < words.length; i++) {
   latin[i] = words[i];
   if (words[i].equals("-") || previousWord.equals("-")) {
      phrase = phrase + latin[i];
   } else {
      phrase = phrase + " " + latin[i];
   }
   previousWord = words[i];
}

System.out.println(phrase);