我的目标是创建一个接受字符串的代码,以及每个单词允许的最小字符数。输出将是一个 int,它告诉用户他们句子中大于或等于他们输入的最小值的单词数。
现在,我的方法是在 main 方法中将句子分解为单个单词,然后将每个单词发送到另一个计算字符数的方法中。
我的主要方法有困难,特别是将句子分成单个单词。我想在不使用数组的情况下实现这一点,只使用循环、子字符串和 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;
}
}