Java 文本处理作业

Java 文本处理作业,java,string,whitespace,Java,String,Whitespace,我正在为我的家庭作业写一些方法,但我不知道该怎么做 我试过很多方法,但似乎都不管用 第一个问题是如何获取我拥有的字符串并返回它,而不带空格。trim()只消除句子的第一个和最后一个空格(getNoSpaceString方法) 此外,我还试图计算我的句子中有多少个数字单词,也就是说一个是1个数字单词 我的代码如下(digitWordCount方法) import java.util.*; 公共类字符串处理器{ 私有字符串noSpaces; 私有字符串输入,noVowels; 私有字符串noDigi

我正在为我的家庭作业写一些方法,但我不知道该怎么做

我试过很多方法,但似乎都不管用

第一个问题是如何获取我拥有的字符串并返回它,而不带空格。trim()只消除句子的第一个和最后一个空格(getNoSpaceString方法)

此外,我还试图计算我的句子中有多少个数字单词,也就是说一个是1个数字单词

我的代码如下(digitWordCount方法)

import java.util.*;
公共类字符串处理器{
私有字符串noSpaces;
私有字符串输入,noVowels;
私有字符串noDigitWords;
private int numOfWords=0,大写字母=0,
numOfDigits=0,digitWords=0;
公共字符串处理器()
{
输入=”;
}
公共字符串处理器(字符串s)
{
StringTokenizer str=新的StringTokenizer;
numOfWords=str.countTokens();
对于(int i=0;i
对于第一个问题,请尝试找出如何将作为空白的“”替换为不包含任何内容的“”(如果您已经在类中看到了这一点,还可以使用字符串函数)

对于第二个问题,知道字符串是一个字符数组可能会有所帮助,同样,如果您已经看到了字符串函数,那么您可能应该查看相关文档(或谷歌搜索)


我希望你不介意我不直接给你答案,因为这是一个家庭作业,你应该自己找到它,我只是想我会让你走上正确的轨道。

如果你不太关心时间复杂性,你可以使用for循环来迭代传入的字符串。制作另一个字符串来保存要返回的内容,比如说,调用它来返回。在for循环中,只需确定此字符是否为“”。使用.charAt(i)执行此操作。如果不是,只需将其连接到toReturn。在for循环之后,您将得到想要返回的内容

对于第一个字符,尽管有一种方法可以使用库方法来完成,但考虑到这是一项家庭作业,您可能应该一个接一个地遍历字符,然后将它们添加到一个新的“结果”字符串中,如果它们符合条件(即不是空格)


对于第二个,有一个库方法,您可以使用它在空格上拆分字符串,这将为您提供一个单词列表。您还应该创建一个10个“数字”单词的列表。然后,您可以迭代输入单词列表,查看它们是否与任何数字单词匹配。

第一个问题是如何获取我拥有的字符串并返回它而不带空格
trim()
仅消除句子的第一个和最后一个空格(getNoSpaceString方法)

您可以通过以下方式实现此目的:

String input2 = input;

input2 = input.replaceAll(" ", "");
这里有更多信息

第二个问题:

此外,我还试图计算我的句子中有多少个数字单词,也就是说一个是1个数字单词

如果您试图计算字数,则:

int words = input.trim().split(" ").length;

System.out.println("number of words: " + words);
下面是工作原理
让我知道这不是你要找的第二个问题

从查看
String
的javadoc开始。正则表达式可以做到这一点…使用
input=input.replaceAll(“,”)
替换所有空格。
String input2 = input;

input2 = input.replaceAll(" ", "");
int words = input.trim().split(" ").length;

System.out.println("number of words: " + words);