将您的代码写入WordCount.java文件中。您的代码应该使用以下签名进入方法。您可以编写自己的主方法来测试代码。评分者将忽略您的主要方法:
public static int countWords(String original, int minLength){}
您的方法应计算句子中满足或超过minLength(以字母为单位)的单词数。例如,如果给定的最小长度为4,则您的程序应该只计算至少4个字母长的单词。
单词将由一个或多个空格分隔。可能存在非字母字符(空格,标点符号,数字等),但不应计入单词长度。
提示:编写一个方法,用于计算包含单个单词而不包含空格的字符串中的字母数(并忽略标点符号)。在countWords方法中,将输入字符串分解为单词并将每个字符串发送到您的方法。
我试图在代码中获得单词的最小长度,而不计算标点符号等。我怎么做?此外,我将摆脱主要方法,因为它将自动添加。如何使程序在最后一个单词后自动添加空格?
public class WordCounts
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Enter a sentence: ");
String sentence = in.nextLine();
System.out.println("minLength");
int minLength=in.nextInt();
System.out.print("Your sentence has " + countWords(sentence,minLength)+ " words.");
}
public static int countWords(String str, int minLength)
{
int count = 0;
int c=0;
for (int i=0;i<=str.length()-1;i++)
{
if (str.charAt(i) != ' ')
{
if(str.charAt(i)>='a' && str.charAt(i)<='z') //to check only for alphabets.
c++;
}
if(c>=minLength)
{
count++;
c=0;
}
}
return count;
}
}
答案 0 :(得分:0)
我想我理解你的问题陈述是正确的。如果我错了,请纠正我。
您要检查输入字符串的长度是否应大于最小输入长度。为此,您需要将minLength
变量传递给方法countWords
。然后使用if (str.charAt(i) == ' ' && str.charAt(i+1)!=' ')
更新方法
public static int countWords(String str, int minLength)
{
int count = 1;
for (int i=0;i<=str.length()-1;i++)
{
if (str.charAt(i) == ' ' && str.charAt(i+1)!=' ' && str.length()>=minLength)
{
count++;
}
}
return count;
}
在您的主要方法中,使用Scanner
int minLength=in.nextInt();
答案 1 :(得分:0)
您必须将minLength作为参数传递给countWords函数。这样,您就可以在countWords函数中访问此变量。您还需要逐个字符循环字符串,并跟踪您看到的字母数,称之为“numLetters”。检查字符串“aAbBcC .... yYzZ”中是否存在字符以确保它是一个字母,如果它存在,则将“1”添加到“numLetters”。如果到达输入的末尾或到达空格,则检查numLetters是否大于minLength,如果是,则将count添加到count。将numLetters重置为0并继续运行,直至到达字符串的末尾。
e.g。获得角色:
for (int i = 0; i < str.length(); i++){
char c = str.charAt(i);
}
答案 2 :(得分:0)
你的功能应该是这样的:
此外,您必须将minLength的值传递给函数您无法访问main之外的minLength。
public static int countWords(String str,int minLength)
{
int count = 0;int c=0;
for (int i=0;i<str.length();i++)
{
if (str.charAt(i) != ' ')
{
if(str.charAt(i)>='a' && str.charAt(i)<='z')
c++;
continue;
}
if(c>=minLength)
{
count++;
}
c=0;
}
if(c>=minLength)
return count+1;
else
return count;
}
}