为了账号安全,请及时绑定邮箱和手机立即绑定

如何在字符串中查找最长的单词,即偶数

如何在字符串中查找最长的单词,即偶数

Qyouu 2022-09-28 10:26:14
我需要在字符串中找到一个既长又均匀的单词。举几个例子:这句话.这应该返回字符串,因为它是最大长度的单词,长度为 ,而不是因为构造是奇数的长度。Time to construct great arttimeeven4construct9另外,在 的示例中。这应该返回字符串 ,因为它是偶数,并且偶数长度为 。它不会返回单词,因为首先出现。Time to write great codeTime4codeTime        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];                }            }        }
查看完整描述

4 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

您可以使用模运算符 () 来检查字符串长度是否为偶数:%


string.length() % 2 == 0

为此,您可以使用 Arrays.stream() 来查找长度为偶数的最长字符串:


String longestWord = Arrays.stream(sentence.split(" ")) // creates the stream with words

        .filter(s -> s.length() % 2 == 0) // filters only the even length strings

        .max(Comparator.comparingInt(String::length)) // finds the string with the max length

        .orElse(" "); // returns " " if none string is found


查看完整回答
反对 回复 2022-09-28
?
www说

TA贡献1775条经验 获得超8个赞

更改是您比较最长长度的>,而不是>=并检查长度是否均匀。


要适应存在其他符号(如 '.')的情况,请使用正则表达式模式。


public static void main(String[] args) {

    // TODO Auto-generated method stub


    String input = "I am good.";

    String[] input_words = input.split(" ");

    String longestWord = " ";


    for(String word : input_words) {

        Pattern p = Pattern.compile("^[a-zA-Z]+");

        Matcher m = p.matcher(word);

        m.find();

        if(m.group().length() % 2 == 0 && m.group().length() > longestWord.length()) {

            longestWord = m.group();

        }

    }

    System.out.println("result : " + longestWord);

}

这将打印出最大的第一个偶数字


查看完整回答
反对 回复 2022-09-28
?
桃花长相依

TA贡献1860条经验 获得超8个赞

在python中这个问题的解决方案是:


def longestevenword(sentence):

  #converting the sentence into lists

  string_list = sentence.split()

  size = 0

  #iteration through each word in the list

  for word in string_list:

    #check to see if the word has even number of characters

    if len(word)%2 == 0:

      #checking if the length of the of the word

      if size <= len(word):

        size = len(word)

        even_word = word

    else:

      continue        

  # printing the longest even word in a given sentence.

  print(even_word)



## function call to test

longestevenword("This is a cat that had a puppyy")


Output: puppyy

它也可以在我的GitHub https://github.com/jaikishpai/CommonSolutions/blob/main/LongestEvenWord.py


查看完整回答
反对 回复 2022-09-28
?
jeck猫

TA贡献1909条经验 获得超7个赞

public class LongestEvenString {

    public static void main(String[] args) {

        String test = "this is a sample input for the problem";

        System.out.println(longestEvenString(test));

    }


    public static String longestEvenString(String test) {

//        Splits a sentence to array of Strings.

        String[] words = test.split(" ");

//        curlen stores length of current word in string Array

//        maxlen stores length of maximum_length word in string Array

        int curlen = 0;

        int maxlen = 0;

        String output = "";

        for (String word:words) {

            curlen = word.length();

//            loop runs only if length of the current word is more than

//            maximum_length thus excluding future same maximum_length words.

//            and also checks for even_length of that word

            if(curlen > maxlen && curlen%2 == 0){

                maxlen = curlen;

                output = word;

            }

        }

//        returns maximum_even_length word which occurred first

        return output;

    }

}


查看完整回答
反对 回复 2022-09-28
  • 4 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信