Java 词频图问题
这段代码的目标是使用主方法java创建一个程序来分析用户输入的文本片段 他们将文本输入扫描仪,然后由程序进行分析。分析的目的是产生词频、平均长度,并以星号图的形式打印出结果,单个“*”代表1个单词 例如,“鸟可能会飞”产生以下结果:Java 词频图问题,java,java.util.scanner,Java,Java.util.scanner,这段代码的目标是使用主方法java创建一个程序来分析用户输入的文本片段 他们将文本输入扫描仪,然后由程序进行分析。分析的目的是产生词频、平均长度,并以星号图的形式打印出结果,单个“*”代表1个单词 例如,“鸟可能会飞”产生以下结果: Enter text: Birds can maybe fly Birds can maybe fly 1 letter words: 0 2 letter words: 0 3 letter words: 2 4 letter words: 0 5 letter
Enter text:
Birds can maybe fly
Birds can maybe fly
1 letter words: 0
2 letter words: 0
3 letter words: 2
4 letter words: 0
5 letter words: 2
mean lenght: 4.0
1 letter words
2 letter words
3 letter words **
4 letter words
5 letter words **
到目前为止,我已经完成了单词频率和单词平均值,但我坚持的部分是创建星号图。这是一个我从未接触过的领域,我想知道我会怎么做,我会使用直方图还是只使用int,然后打印出一个“*”而不是一个数字?。我不希望任何人直接把代码交给我,但是如果有人能给我一个我应该做什么的提示,或者给我指出正确的方向,或者给我一个我应该做什么的解释,我将不胜感激
代码:
import java.util.Scanner;
公共类频率
{
公共静态void main(字符串[]args)
{
扫描仪扫描=新扫描仪(System.in);
while(true)
{
System.out.println(“输入文本:”);
字符串s;
s=scan.nextLine();
字符串输入=s;
String strippedInput=input.replaceAll(“\\W”和“);
System.out.println(“+strippedInput”);
String[]strings=strippedInput.split(“”);
int[]计数=新的int[6];
int-total=0;
for(字符串str:strings)
if(str.length()
您可以循环计算计数
并为每个单元格打印一个与存储在其中的数字相等的星号:
for (int i = 0; i < counts.length; ++i) {
StringBuilder sb = new StringBuilder(i).append(" letter words ");
for (int j = 0; j <= counts[i]; ++j) {
sb.append('*');
}
System.out.println(sb);
}
for(int i=0;i
用法:
String str = "*";
int n = 2;
String repeated = StringUtils.repeat(str, n);
重复的将是:**
String str = "*";
int n = 2;
String repeated = StringUtils.repeat(str, n);