0

所以我已经创建了一个搜索特定单词的类方法,但是(就像大多数时候我发现自己在这里!)我的大脑出现了故障,不知道如何修改它来做我需要的事情. 这是我到目前为止所得到的:

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 个字母的单词。尝试使用一堆复杂的子字符串,但没有奏效。任何建议或指导都会很棒。先感谢您。

4

3 回答 3

3

您当前的方法很接近;您只需要更改 for 循环中的条件以使用String#length()而不是等于键参数来检查 4 的长度。

private static String findFourLetterWord(String[] strings) {
    for (String str : strings) {
        if (str.length() == 4) {
            return str;
        }
    }
    return null;
}

当您发现自己不确定哪些方法可以为您提供方便时,请不要忘记查阅JavaDocs 。

于 2012-10-30T15:19:43.000 回答
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;
}
于 2012-10-30T15:19:27.420 回答
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;
 }
于 2012-10-30T15:20:53.440 回答