2010-06-14 57 views
3

我想要获取用户输入的字符串数组的最长方法,然后返回该数组中最长字符串的元素号。我已经达到了能够以最长的字符串返回字符数量的程度,但我不相信这将适用于我所需要的。我的问题是,当我试图解决这个问题时,我不断遇到不兼容的类型错误。我不明白带字符串的整个数据类型的东西。这让我感到困惑,我如何去返回一些数组,但数组是字符串。主要方法很好,我卡在了????部分。返回数组中最长字符串的元素号

public static void main(String [] args) 
{ 
    Scanner inp = new Scanner(System.in); 
    String [] responseArr= new String[4]; 

    for (int i=0; i<4; i++) 
    { 
    System.out.println("Enter string "+(i+1)); 
    responseArr[i] = inp.nextLine(); 
    } 
    int highest=longestS(responseArr); 
} 

public static int longestS(String[] values) 
{  
    int largest=0 

    for(int i = 1; i < values.length; i++) 
    { 
     if (?????   ) 

    } 
    return largest; 
} 
+1

欢迎堆栈溢出!请编辑您的代码以改进格式(标签等) - 这会增加您获得的(良好)答案的数量。 – Cam 2010-06-14 03:11:18

+4

当我是大学生时,除非代码格式正确,否则工作人员“编程顾问”会拒绝**提供任何**帮助。海事组织,“我是新来的这个网站”也不是一个有效的借口。 – 2010-06-14 03:15:55

+0

如果字符串数组是 {“this”,“list”,“same”,“size”,“four”}怎么办?你的方法应该返回哪个索引? – emory 2010-06-14 04:42:40

回答

3
for (int i = 0; i < values.length; i++) 
    { 
     if (values[i].length() > largest) 
     { 
      largest = values[i].length(); 
      index = i; 
     } 
    } 
    return index; 

注:初始化INT i与0 - 数组索引是0为基础的。

回到你main,你可以再做System.out.println("Longest: " + responseArr[highest]);

2

你将要存储在您longestS方法两件事情:最大长度,到目前为止,最大长度的数组索引。另请注意,Java中的数组索引从0开始。用int i = 1初始化的for循环实际上是从第二个索引开始的。

3

以下是我会写:

public static int findIndexOfLongestString(String[] values) 
{  
    int index = -1; 

    if ((values != null) && (values.length > 0)) 
    { 
     index = 0; 
     String longest = values[0]; 
     for (int i = 1; i < values.length; ++i) 
     { 
      if (values[i].length() > longest.length()) 
      { 
      longest = values[i]; 
      index = i; 
      } 
     } 
    } 

    return index; 
} 
+1

+1,但您可能想要修正索引的重新声明。 – 2010-06-14 03:36:25

1

我的解决办法:

public class JavaApplication3 
{ 
    public static void main(String[] args) 
    { 
     String[] big={"one","two","three"}; 
     String bigstring=null; 
     int maxlength=0; 
     for(String max:big) 
     { 
      if(maxlength<max.length()) 
      { 
       maxlength=max.length(); 
       bigstring=max; 
      } 
     } 
     System.out.println(bigstring); 
    } 
} 
+0

这不会返回数组中的索引。 – Starkey 2012-11-04 01:13:27

相关问题