gpt4 book ai didi

java - startsWith(String) 方法和数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:31:40 25 4
gpt4 key购买 nike

我必须获取一个字符串并将该字符串转换为 piglatin。 piglatin 有三个规则,其中之一是:

如果英文单词以元音开头,则返回英文单词 + "yay"用于 piglatin 版本。

所以我试着诚实地尝试这样做,希望得到一个错误,因为 startsWith() 方法采用字符串作为参数而不是数组。

 public String pigLatinize(String p){
if(pigLatRules(p) == 0){
return p + "yay";
}
}

public int pigLatRules(String r){
String vowel[] = {"a","e","i","o","u","A","E","I","O","U"};
if(r.startsWith(vowel)){
return 0;
}
}

但如果我不能使用数组,我就必须做这样的事情

if(r.startsWith("a")||r.startsWith("A")....);
return 0;

并测试不包括 y 的每个元音,这会占用大量空间,就我个人而言,我认为它看起来相当困惑。

当我写这篇文章时,我正在考虑通过迭代以某种方式测试它。

 String vowel[] = new String[10];
for(i = 0; i<vowel[]; i++){
if(r.startsWith(vowel[i]){
return 0;
}

我不知道这种迭代尝试是否有意义。

最佳答案

您的代码:

String vowel[] = new String[10];
for(i = 0; i<vowel[]; i++){
if(r.startsWith(vowel[i]){
return 0;
}
}

实际上非常接近应该有效的解决方案(假设您实际上将一些值放入数组中)。

您需要在其中输入什么值,正如您提到的那样,您可以使用元音的所有可能值填充数组。那些当然是

String[] vowel={"a","A","e","E","i","I","o","O","u","U"};

现在你有了这个你会想循环(当你计算的时候)数组并做你的检查:

public int pigLatRules(String r){
final String[] vowels={"a","A","e","E","i","I","o","O","u","U"};
for(int i = 0; i< vowels.length; i++){
if(r.startsWith(vowels[i])){
return 0;
}
}
return 1;
}

不过,您可以对此进行一些改进。有些是最佳实践,有些只是选择,有些是性能。

至于最佳实践,您目前正在从此函数返回一个 int。您最好将此函数的结果更改为 boolean 值(如果您没有遇到过,我建议您查找它们)。

至于选择,你说你不喜欢必须有一个包含大写和小写元音的数组。这里有一些信息。字符串有很多方法 http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html其中之一是 toLowerCase(),您可以猜到它会将整个字符串小写。如果对传递给函数的工作执行此操作,则可以将需要执行的检查量减半。

您还可以了解更多内容,但这只是一小部分。

关于java - startsWith(String) 方法和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13191312/

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