如何解决在数组的每个索引中计算','之前的字符,并返回最高的
我需要从这个数组中获取最长的姓氏并返回它。
String[] names = {"Turner,Brendan","Savage,Fred","Zidy,Boop","Zobie,"Flurb,"Mopeeeeeyyy,Boopertinson"};
到目前为止我有这个;
public static void getLongestSurname(String[] name){
int i = 0;
int x = 0;
int currentLength = 0;
int lastLength = 0;
String longestName = null;
for(int j = 0; j < (name.length); j++){
while (name[j].charat(i) != ',') {
i++;
currentLength++;
}
System.out.println(i);
System.out.println("current is"+currentLength);
i = 0;
currentLength = 0;
if ( currentLength > lastLength ){
longestName = name[i];
}
}
System.out.println("longest surname should be; "+ longestName);
}
但它给出的输出是“最长的姓氏应该是;特纳,布伦丹” 这不是列表中最长的名称。
我在这里做错了,但此时我的大脑感觉像炒鸡蛋。有人可以帮忙吗?
谢谢。
解决方法
在迭代所有名称时需要跟踪 longestName
,将当前名称的长度与当前 longestString
的长度进行比较,而不是与 lastLength 进行比较
如果currentName 的长度大于longestNumber 的长度,则longestName 将被更新
解决方案
public static void getLongestSurname(String[] name){
int currentLength = 0;
int lastLength = 0;
String longestName = null;
for(int j = 0; j < (name.length); j++){
// split string by "," to get surname
String[] strAr = name[j].split(",");
// length of current surname
currentLength = strAr[0].length();
// compare length of current surname with longest surName
if ( currentLength > lastLength ){
longestName = name[j];
lastLength = strAr[0].length();
}
}
System.out.println("longest surname should be; "+ longestName);
}
,
对于数组中的每个名字,解析姓氏。将其与当前最长的姓氏进行比较。如果当前为空或更短,则替换它。继续这样做,直到列表用完为止。返回结果。
public String findLongestSurname(String[] names) {
String longestSurname = null;
for (String name : names) {
String[] tokens = name.split(",");
String surname = tokens[0];
if (longestSurname == null || surname.length > longestSurname.length) {
longestSurname = surname;
}
}
return longestSurname;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。