我正试图为我的家庭作业写一些方法,但我不知道该怎么做。
我试过很多东西,但似乎都没有用。
第一个问题是如何获取一个字符串,并返回它没有空格。trim()只删除句子的第一个和最后一个空格(getNoSpaceString方法)。
另外,我还在试着数我的句子中的数字单词,也就是一个数字单词。
我的代码如下(digitWordCount方法)。
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: ");
}
}发布于 2014-04-07 22:34:47
第一个问题是如何取一个字符串,并在没有空格的情况下返回它。trim()只删除句子的第一个和最后一个空格(getNoSpaceString方法)。
String input = " Hello World ";你可以通过以下方式实现这一点:
String input2 = input;
input2 = input.replaceAll(" ", "");瞧一瞧在这里获得更多信息
第二个问题:
另外,我还在试着数我的句子中的数字单词,也就是一个数字单词。
如果你想数字数,那么:
int words = input.trim().split(" ").length;
System.out.println("number of words: " + words);这是拆分的工作原理,让我知道,这不是你要找的第二个问题
发布于 2014-04-07 21:55:53
对于第一个问题,试着找出如何将“空格”替换为“这不算什么”(如果您已经在类中看到了这一点,也可以使用字符串函数)。
对于第二个问题,可能有助于知道字符串是一个字符数组,如果您已经看到了字符串函数,那么您可能应该查看一下您已经了解到的文档(或者谷歌它)。
我希望你不要介意我没有给你直接的答案,考虑到这是一个家庭作业作业,你应该自己找到它,我只是觉得我会让你在正确的轨道上。
发布于 2014-04-07 21:56:15
如果您不关心时间复杂性,则只需使用for循环来迭代传入的字符串。用另一个字符串来保存要返回的内容,例如,将其称为toReturn。在for循环中,您所需要做的就是确定这个字符是否是“”。使用.charAt(i)来做到这一点。如果不是,只需将其附加到toReturn。在for循环之后,您将得到想要返回的内容。
https://stackoverflow.com/questions/22923739
复制相似问题