gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 12:59:57 26 4
gpt4 key购买 nike

我对 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
我知道打破嘻哈音乐然后重新组合它似乎毫无意义,但这是我需要为我正在创建的 pig 拉丁语翻译器做好的一件小事。这里的代码编译正确。

我创建了 int k,以便如果数组中的前一个单词等于“-”,那么当拉丁语添加到短语中时,不会出现空格。

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

最佳答案

您从未更新过 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);

关于java - 引用字符串数组中的前一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23586950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com