当前位置: 首页 > 知识库问答 >
问题:

输入句子并打印出超过Java最小长度要求的字数

越飞语
2023-03-14

我的目标是创建一个接受字符串的代码,以及每个单词允许的最小字符数。输出将是一个int,它告诉用户句子中超过或等于他们输入的最小值的单词数。

现在,我的方法是在main方法中将句子分解成单个单词,然后将每个单词发送到另一个计算字符数的方法中。

我在我的主要方法上遇到了困难,特别是把句子分解成单个单词。我想在不使用数组的情况下实现这一点,只使用循环、substring和indexOf等。我使用一个只有一个单词的字符串测试了我的其余代码,我的letterCounter方法似乎工作得很好。我知道答案很可能很简单,但我还是很难弄明白。

任何帮助都会很好!谢谢!

下面是我的代码:

public class Counter
{
public static void main(String [] args)
{
    int finalcount = 0;

    System.out.print("Enter your string: ");
    String userSentence = IO.readString();


    System.out.print("Enter the minimum word length: ");
    int min = IO.readInt();

    //Error checking for a min less than 1

    while(min < 0)
    {
        IO.reportBadInput();
        System.out.print("Enter the minimum word length: ");
        min = IO.readInt();
    }


    int length = userSentence.length(); // this will get the length of the string



    for(int i = 0; i < length; i ++)
    {
         if (userSentence.charAt(i) == ' ')
         {  

             /* I dont know what to put here to split the words!

                  once I split the userSentence and store the split word into
                  a variable called word, i would continue with this code: */

            if((letterCounter(word)) >= min)
                finalcount++;

            else
                finalcount = finalcount;

           }
    }       




    IO.outputIntAnswer(finalcount);

}

//this method counts the number of letters in each word

    public static int letterCounter (String n)
        int length = n.length(); 
        int lettercount= 0;


     for(int i = 0; i < length; i ++)

    {
        boolean isLetter = Character.isLetter(n.charAt(i));

         if (isLetter) 
         {
            if ((n.length()) >= length) 
            {
                lettercount++;
            }
         }

    }

    return lettercount;
 }

}

共有1个答案

穆宾白
2023-03-14

您可以像这样使用String.split()来完成以下操作:

String [] splittedString  = inputString.split(" ");

for(int i = 0;i< splittedString.length; i++){
    String currentWord = splittedString[i];

    if(currentWord.length() >= min){
        finalcount++;
    }
}
 类似资料:
  • 这个程序询问你一个单词和一个句子的最小长度。该程序的目的是统计句子中符合字母长度要求的字数。有人能帮我拿一下我的计数器吗,字数不会增加的。

  • 这里,在这段代码中,它打印序列的最大子序列的长度,该序列先增加后减少,或者反之亦然。 例如: 输入:1,11,2,10,4,5,2,1 如增-减-增或减-增-减 示例: 投入:7 16 1 6 20 17 7 18 25 1 25 21 11 5 29 11 3 3 26 19

  • 我试图在c中实现最长公共子序列算法,矩阵c[]]存储最长公共子序列的长度,行[][]存储c[]]矩阵中的父块行,列[][]存储父块列。 我对解决LCS的方法非常不便和低效表示歉意,但什么都没有打印出来。请帮忙。

  • 给定一个整数N和一个长度为N的数组,该数组由0到N-1的整数组成,可能包含也可能不包含所有整数,也可能包含重复数。查找一个从索引i到索引j的子数组(i, j),使其包含数组中的所有整数,并且具有最小长度。输出是这样一个子数组的长度 示例:A=[2,1,1,3,2,1,1,3],因此最小子数组长度=3,因为A[2]到A[4]包含所有数字 我的想法: 维护一个计数器数组和两个索引开始和结束,其中包含数

  • 给定一个字符串,在不重复字符的情况下,找到最长子字符串的长度。例如,“abcabcbb”的不重复字母的最长子字符串是“abc”,其长度为3。对于“bbbbb”,最长的子字符串是“b”,长度为1。 对于长可重复字符串的最后一次测试,超过了时间限制。不知道如何优化。寻求改进,谢谢

  • 本文向大家介绍写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。相关面试题,主要包含被问及写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。时的应答技巧和注意事项,需要的朋友参考一下 【参考答案】 main() { intlen; char *s tr[20]; printf("please input a string:\n"); scanf("%