Java 引用字符串数组中的前一个字符串
我对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++) {
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
sowords[k]的值。等于(“-”)
永远不会计算为真。它总是等于hop
我明白你的意思。但当我这样做时,它不起作用:int k;k=i-1;k=k+1;-->这被放在if语句之后,我可以帮助你。如果你觉得这解决了你的问题,那么接受我的答案是非常感谢的。