Java 返回数组中最长字符串的元素号
我正在尝试获取最长的方法来获取用户输入的字符串数组,然后返回该数组中最长字符串的元素号。我已经能够返回最长字符串中的字符数了,但我不相信这能满足我的需要。我的问题是,当我试图解决这个问题时,总是会出现不兼容的类型错误。我还不了解字符串的整个数据类型。我很困惑如何返回数组中的数字,而数组是由字符串组成的。主要方法很好,我被卡在了????部分Java 返回数组中最长字符串的元素号,java,arrays,string,Java,Arrays,String,我正在尝试获取最长的方法来获取用户输入的字符串数组,然后返回该数组中最长字符串的元素号。我已经能够返回最长字符串中的字符数了,但我不相信这能满足我的需要。我的问题是,当我试图解决这个问题时,总是会出现不兼容的类型错误。我还不了解字符串的整个数据类型。我很困惑如何返回数组中的数字,而数组是由字符串组成的。主要方法很好,我被卡在了????部分 public static void main(String [] args) { Scanner inp = new Scanner( Syste
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;
}
publicstaticvoidmain(字符串[]args)
{
扫描仪inp=新扫描仪(System.in);
String[]responseArr=新字符串[4];
for(int i=0;ifor(int i=0;i最大值)
{
最大=值[i]。长度();
指数=i;
}
}
收益指数;
注意:用0初始化inti
——数组索引是基于0的
回到main
,然后可以执行System.out.println(“最长:“+responseArr[highest]”)
等。您需要在longestS
方法中存储两个东西:目前为止的最大长度和最大长度的数组索引。还要记住,在Java中数组索引从0开始。使用int i=1
初始化的for循环实际上将从第二个索引开始。我将如何编写它:
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;
}
public static int findIndexOfLongsString(字符串[]值)
{
int指数=-1;
如果((values!=null)&&(values.length>0))
{
指数=0;
字符串最长=值[0];
对于(int i=1;i最长.length())
{
最长=值[i];
指数=i;
}
}
}
收益指数;
}
我的解决方案:
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);
}
}
公共类JavaApplication3
{
公共静态void main(字符串[]args)
{
字符串[]大={“一”、“二”、“三”};
字符串bigstring=null;
int maxlength=0;
用于(字符串最大值:大)
{
如果(maxlengthWelcome出现堆栈溢出!请编辑您的代码以改进格式(制表符等)-这将增加您获得的(好)答案的数量。当我还是大学生时,“编程顾问”会拒绝提供任何帮助,除非代码格式正确。IMO,“我是这个网站的新手”也不是有效的借口。如果字符串数组是{“this”,“list”,“same”,“size”,“four”},该怎么办?您的方法应该返回什么索引?这不会返回数组中的索引。
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);
}
}