所以我已经制作了一个类方法来搜索一个特定的单词,但是(就像大多数时候我发现自己在这里!)我有一个大脑故障,无法弄清楚如何修改它来做我需要的。这是我到目前为止所得到的:
private static int findFourLetterWord(String[] strings, String key) {
for (int i = 0; i < strings.length; i++)
if (strings[i].equals(key))
return i;
return -1;
}
所以这会在数组中搜索'key',如果找到则返回它的位置。我试图让它做的是搜索它遇到的前4个字母单词的字符串数组并返回该单词。我会将第一个回报更改为System.out.println(strings[i]);
我相信,但我不知道如何让它搜索它找到的前4个字母单词。尝试使用一堆复杂的子串,但这不起作用。任何建议或指导都会很棒。提前谢谢你。
答案 0 :(得分:3)
你现在的方法很接近;你只需要改变for循环中的条件,使用String#length()
检查长度为4,而不是与关键参数相等。
private static String findFourLetterWord(String[] strings) {
for (String str : strings) {
if (str.length() == 4) {
return str;
}
}
return null;
}
当您发现自己不确定哪些方法可供您方便时,请不要忘记咨询JavaDocs。
答案 1 :(得分:2)
我理解你的问题了吗?
private static String findFourLetterWord(String[] strings) {
for (int i = 0; i < strings.length; i++)
if (strings[i].length()==4)
return strings[i];
return null;
}
答案 2 :(得分:0)
使用substring
函数获取键和字符串的前4个字符,如下所示:
private static int FindFourLetterWord(String[] strings, String key) {
//Assuming key length is 4 or more
String keyWithFourChars = key.substring(0,4);
for (int i = 0; i < strings.length; i++){
if(strings[i].length() > 3){
if (strings[i].substring(0,4).eqauls(keyWithFourChars)){
return i;
}
}
}
return -1;
}
如果你只想查找4个字符串,那么只需检查长度如下:
在这种情况下,您无需将key
作为参数传递。
private static int FindFourLetterWord(String[] strings) {
for (int i = 0; i < strings.length; i++){
if(strings[i].length() == 4){
return i;
}
}
return -1;
}