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

在java中制作单词扰频器

魏熠彤
2023-03-14
import java.util.Scanner;

public class WordScrambler 
{
    public String prefix, inner, postfix, newword;


    public static void main(String[] args) 
    {
        Scanner sc = new Scanner (System.in);
        String words = sc.nextLine();
        System.out.println(words);
    }


public void Scrambler()

}

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

}

}

我真的不明白如何将我的变量“单词”放入我的加扰方法中,以便我可以将我放入的每个单词拆分为单独的字符串,当我这样做时,我只是声明一个新的数组单词吗?如何从上面抓取该变量。另外,我的system.out.println只是检查我的扫描仪是否正常工作。还是我做得对,它实际上是在分裂单词吗?

共有3个答案

麻宾白
2023-03-14

您需要将变量作为参数传递给方法。如果将方法设为静态,则可以简单地从main()调用它。

另外,将输入命名为(显然)input,因为这就是它的含义。

以下是我的做法:

public static void main(String[] args) {
    Scanner sc = new Scanner (System.in);
    String input = sc.nextLine();
    System.out.println(scramble(input));
}

public static String scramble(String input) {
    List<String> words = new ArrayList<String>(Arrays.asList(input.trim().split("\\s+")));
    Collections.shuffle(words);
    return words.toString().replaceAll("[^\\w ]", "");
}
微生俊捷
2023-03-14

似乎您只是想将变量从一个方法传递到另一个方法。

旁注:在Java中,方法名以小写字母开头,通常是动词:scramble而不是Scrambler

在:

public static void main(String[] args) 
{
    Scanner sc = new Scanner (System.in);
    String words = sc.nextLine();
    System.out.println(words);
}

您已经获得了输入,但仍然没有任何地方可以发送它,因为您还没有创建WordScrambler的实例。

因此,让我们制作其中之一:

WordScrambler wordScrambler = new WordScrambler();

好了,现在你可以使用加扰方法了,所以

wordScrambler.scramble( words )

会让事情有所进展

现在,您需要对这个字符串做一些事情(在您修改了方法声明以接受一个字符串参数之后),比如拆分它、混淆单词并输出结果。

牛昱
2023-03-14
import java.util.Scanner;

public class WordScrambler {

    public String prefix, inner, postfix, newword;

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String words = sc.nextLine();
        WordScrambler wordScrambler = new WordScrambler();
        wordScrambler.scrambler(words);

    }

    public void scrambler(String words) {

        String[] word = words.trim().split(" ");

        for (int i = 0; i < word.length; i++) {

            System.out.println(word[i]);
        }
    }
}
 类似资料:
  • 问题内容: 我想从文本文件中提取每个词,然后计算字典中的词频。 例: 我没有那么远,但是我看不出如何完成它。到目前为止,我的代码: 问题答案: 如果您不想使用collections.Counter,则可以编写自己的函数: 对于更好的东西,请看正则表达式。

  • 问题内容: 我试图加快我的项目以计算单词频率的速度。我有360多个文本文件,我需要获取单词的总数以及另一个单词列表中每个单词出现的次数。我知道如何使用单个文本文件执行此操作。 要获得“通货膨胀”,“工作”,“产出”个体的频率过于繁琐。我可以将这些单词放入列表中并同时查找列表中所有单词的出现频率吗?基本上,这与Python。 示例:代替此: 我想这样做(我知道这不是真实的代码,这是我在寻求帮助的内容

  • 问题内容: 我想计算一个文本文件中所有单词的频率。 如果目标文本文件如下所示,则应返回: 在一些帖子之后,我已经用纯python实现了它。但是,我发现由于巨大的文件大小(> 1GB),纯python方法是不够的。 我认为借用sklearn的能力是一个候选人。 如果让CountVectorizer为每一行计数频率,我想您将通过累加每一列来获得字频率。但是,这听起来有点间接。 用python计算文件中

  • 问题内容: 我正在编写一个非常基本的Java程序,该程序可以计算句子中每个单词的频率,到目前为止,我设法做到了这一点 我已经提取了每个字符串并将其存储在数组中,现在的问题实际上是如何计算每个“单词”重复出现的次数以及如何显示以使重复的单词不会多次显示,您能帮我这个忙吗?一个? 问题答案: 使用以单词为键的地图并将其计为值,像这样 如果不允许使用java.util,则可以使用一些排序算法对arr进行

  • 我刚刚在doc2vec模型词汇表中遇到了这篇关于单词计数的StackOverflow帖子。我想知道是否有其他方法来检索词频,除了 也许有一种更优雅的方式通过gensim库(即在txt文件中输出单词和频率)?

  • 问题内容: 我正在尝试使用solr获得单词的频率。当我给这个查询: solr给我类似的频率; 但是当我数数单词时;我发现word2的实际计数值为13。Solr在字段中将相同的单词计数为1。 例如; 字段文字包括;。Solr不返回word2的计数2,而是返回1。它为下面两个句子的word2计数返回1; 因此频率返回错误。我检查了构面字段,但没有找到合适的参数。我该如何解决它,使句子中的单词数相同?