我正在尝试为我的家庭作业编写一些方法,但我不知道该怎么做。
我尝试了很多东西,但似乎都没有。
第一个问题是我如何获取我拥有的字符串并返回它没有空格。 trim()只消除句子的第一个和最后一个空格(getNoSpaceString方法)。
此外,我正在尝试计算我的句子所具有的数字字数,即一个是1位数字。
我的代码在下面(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: ");
}
}
答案 0 :(得分:2)
关于你的第一个问题,试着找出如何将“”这是一个空格替换为“”这是什么都没有(如果你已经在你的课程中看过这个,那么还有字符串函数)
对于你的第二个问题,知道一个字符串是一个字符数组可能会有所帮助,再次,如果你已经看过字符串函数,你应该查看你已经得到的文档(或google it)< / p>
我希望你不介意我不直接给你答案,因为这是一个家庭作业,你应该自己找到它,我只是觉得我会让你走上正轨。
答案 1 :(得分:0)
如果你不太关心时间复杂度,你可以只使用for循环来迭代传入的字符串。制作另一个字符串来保存返回的内容,比如称之为toReturn。在for循环中,您需要做的就是确定此字符是否为“”。使用.charAt(i)这样做。如果不是,只需将其附加到toReturn即可。在for循环之后,你将拥有你想要的东西。
答案 2 :(得分:0)
对于第一个,虽然有一种方法可以使用库方法,但鉴于它是一个家庭作业,你应该逐个循环遍历字符,然后将它们添加到一个新的&# 34;结果&#34;字符串如果符合标准(即不是空格)。
对于第二个,有一个库方法,您可以使用它来分隔空格上的字符串,这将为您提供单词列表。您还应该创建一个10&#34;数字&#34;话。然后,您可以迭代输入单词列表,看看它们是否与任何数字单词匹配。
答案 3 :(得分:0)
第一个问题是我如何获取我拥有的字符串并返回它没有空格。 trim()
只删除句子的第一个和最后一个空格(getNoSpaceString方法)。
String input = " Hello World ";
您可以通过以下方式实现这一目标:
String input2 = input;
input2 = input.replaceAll(" ", "");
Take a look此处了解更多信息
第二个问题:
此外,我正在尝试计算我的句子所具有的数字字数,即一个是1位数字。
如果您正在尝试计算单词数量,那么:
int words = input.trim().split(" ").length;
System.out.println("number of words: " + words);
以下是split的工作原理 让我知道,这不是你在寻找第二个问题