首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本处理赋值

文本处理赋值
EN

Stack Overflow用户
提问于 2014-04-07 21:47:03
回答 4查看 221关注 0票数 0

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

我试过很多东西,但似乎都没有用。

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

另外,我还在试着数我的句子中的数字单词,也就是一个数字单词。

我的代码如下(digitWordCount方法)。

代码语言:javascript
复制
import java.util.*;
public class StringProcessor {
private String noSpaces;
private String input, noVowels;
private String noDigitWords;
private int numOfWords = 0, uppercaseLetters = 0,
            numOfDigits = 0, digitWords = 0;

public StringProcessor()
{
    input = "";
}

public StringProcessor(String s)
{
    StringTokenizer str = new StringTokenizer(s);
    numOfWords = str.countTokens();

    for (int i = 0; i < s.length(); i++)
    {
        if (Character.isUpperCase(s.charAt(i)))
            uppercaseLetters++;
    }

    for (int i = 0; i < s.length(); i++)
    {
        if (Character.isDigit(s.charAt(i)))
            numOfDigits++;
    }

    if (str.nextToken().equalsIgnoreCase("one"))
        digitWords++;


}

public void setString(String s)
{
    input = s;
}

public String getString()
{
    return input;
}

public int wordCount()
{
    return numOfWords;
}

public int uppercaseCount()
{
    return uppercaseLetters;
}

public int digitCount()
{
    return numOfDigits;
}

public int digitWordCount()
{
    return digitWords;
}

public String getNoSpaceString()
{
        return noSpaces;
}

public String getNoVowelString()
{
    return noVowels;
}

public String getNoDigitWordString()
{
    return noDigitWords;
}

public static void main(String[] args)
{
    String input;
    Scanner keyboard = new Scanner(System.in);

    System.out.print("Enter a line of text: ");
    input = keyboard.nextLine();

    StringProcessor str = new StringProcessor(input);

    System.out.println("\nwords: " + str.wordCount());
    System.out.println("uppercase: " + str.uppercaseCount());
    System.out.println("digits: " + str.digitCount());
    System.out.println("digit words " + str.digitWordCount());
    System.out.println("line with no spaces: ");

}
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-04-07 22:34:47

第一个问题是如何取一个字符串,并在没有空格的情况下返回它。trim()只删除句子的第一个和最后一个空格(getNoSpaceString方法)。

代码语言:javascript
复制
String input = "  Hello World  ";

你可以通过以下方式实现这一点:

代码语言:javascript
复制
String input2 = input;

input2 = input.replaceAll(" ", "");

瞧一瞧在这里获得更多信息

第二个问题:

另外,我还在试着数我的句子中的数字单词,也就是一个数字单词。

如果你想数字数,那么:

代码语言:javascript
复制
int words = input.trim().split(" ").length;

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

这是拆分的工作原理,让我知道,这不是你要找的第二个问题

票数 0
EN

Stack Overflow用户

发布于 2014-04-07 21:55:53

对于第一个问题,试着找出如何将“空格”替换为“这不算什么”(如果您已经在类中看到了这一点,也可以使用字符串函数)。

对于第二个问题,可能有助于知道字符串是一个字符数组,如果您已经看到了字符串函数,那么您可能应该查看一下您已经了解到的文档(或者谷歌它)。

我希望你不要介意我没有给你直接的答案,考虑到这是一个家庭作业作业,你应该自己找到它,我只是觉得我会让你在正确的轨道上。

票数 2
EN

Stack Overflow用户

发布于 2014-04-07 21:56:15

如果您不关心时间复杂性,则只需使用for循环来迭代传入的字符串。用另一个字符串来保存要返回的内容,例如,将其称为toReturn。在for循环中,您所需要做的就是确定这个字符是否是“”。使用.charAt(i)来做到这一点。如果不是,只需将其附加到toReturn。在for循环之后,您将得到想要返回的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22923739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档