Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 引用字符串数组中的前一个字符串_Java_Arrays - Fatal编程技术网

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

Java 引用字符串数组中的前一个字符串,java,arrays,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++) {

我对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);
stringenglish=“嘻哈”;

String[]words=english.split(“[\\s+]|”(?您从未更新
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);
stringenglish=“嘻哈”;

String[]words=english.split([\\s+]|)(?您从不更新
k
so
words[k]的值。等于(“-”)
永远不会计算为真。它总是等于
hop
我明白你的意思。但当我这样做时,它不起作用:int k;k=i-1;k=k+1;-->这被放在if语句之后,我可以帮助你。如果你觉得这解决了你的问题,那么接受我的答案是非常感谢的。