我需要在一个字符串中找到一个既最长又是偶数的单词。举几个例子:
句子Time to construct great art
。这应该返回字符串time
,因为它是长度为even
的最大单词,长度为4
,它不是construct
,因为构造的长度为9
,这是奇数。
同样,在Time to write great code
的示例中,它应该返回字符串Time
,因为它是偶数,并且具有偶数长度4
。它不会返回单词code
,因为Time
首先出现。
String[] array = sentence.split(" ");
String longestWord = " ";
for (int i = 0; i < array.length; i ++) {
if (array[i].length() >= longestWord.length()) {
longestWord = array[i];
}
}
System.out.println(longestWord);
我的代码成功地打印了最长的单词,但是没有考虑最长的字符串长度是否为偶数以及它是否首先出现。
我试过在for循环中使用一些取模字符,但它无法跟踪最大的字是否为偶数,如果不是,则移动到下一个最大的字。
此外,我有一个很难跟踪,如果这个词来第一或没有。
我所尝试的是:
for (int i = 0; i < array.length; i ++) {
if (array[i].length() >= longestWord.length()) {
longestWord = array[i];
if (longestWord.length() % 2 != 0) {
break;
}
else {
longestWord = array[i];
}
}
}
8条答案
按热度按时间tcomlyy61#
您可以使用模运算子(
%
)来检查字串长度是否为偶数:要完成这个过程,你可以使用
Arrays.stream()
来查找长度为偶数的最长字符串:jecbmhm32#
变化是,您比较〉与最长长度,而不是〉=,并检查长度是否为偶数。
若要适应存在其他符号(如."")的情况,请使用Regex模式。
这将打印第一个出现的最大偶数字
vktxenjb3#
使用%(模数)运算符是通过检查除以2是否得出余数来评估数字是奇数还是偶数的常用方法。在这里可以这样使用它:
编辑:我感觉很糟糕,因为这听起来像是一项作业,所以我不会解决问题中“先来”的部分。
ercv8c1e4#
cigdeys35#
python中问题的解决方案是:
我的GitHub https://github.com/jaikishpai/CommonSolutions/blob/main/LongestEvenWord.py上也有
gwbalxhn6#
public static void main(String[] args){ // TODO自动生成的方法存根
}
p5cysglq7#
lstz6jyr8#
公共类FindLongestEvenWord {
}