Java 字数计算算法问题
因此,我正在尝试制作一个字数计算程序,用户可以在其中粘贴文本以获得输入文本的字数,从而获得字数。在中键入文本在很大程度上起作用,但有时当我尝试返回并替换文本时,会出现字符串索引超出范围的错误。粘贴工作,但我有问题的字符串索引超出范围的问题,以及在这里。我的逻辑是这样的:一个空格等于一个单词,两个空格背靠背等于减去一个单词,字符串的结尾算作一个单词。我对Java比较陌生,我认为这将是一件容易做到的事情,我错了!如能提供帮助/解释,将不胜感激Java 字数计算算法问题,java,string,stringbuilder,Java,String,Stringbuilder,因此,我正在尝试制作一个字数计算程序,用户可以在其中粘贴文本以获得输入文本的字数,从而获得字数。在中键入文本在很大程度上起作用,但有时当我尝试返回并替换文本时,会出现字符串索引超出范围的错误。粘贴工作,但我有问题的字符串索引超出范围的问题,以及在这里。我的逻辑是这样的:一个空格等于一个单词,两个空格背靠背等于减去一个单词,字符串的结尾算作一个单词。我对Java比较陌生,我认为这将是一件容易做到的事情,我错了!如能提供帮助/解释,将不胜感激 public static int getWordCo
public static int getWordCount(String getInput, int e){
int numberOfWords = 0;
char l1 = 0;
char l2 = 0;
StringBuilder convertInput = new StringBuilder(getInput);
System.out.println(convertInput);
for (int i = 0, i1 = 1; i < getInput.length();i++, i1++){
l2 = convertInput.charAt(i);
if (l2 == ' '){
numberOfWords += 1;
l1 = convertInput.charAt(i1);
}
if (i == getInput.length() - 1){
numberOfWords += 1;
}
if (l2 == ' ' && l1 == ' '){
numberOfWords -= 1;
}
}
return numberOfWords;
} // end of getWordCount method
publicstaticintgetwordcount(stringgetinput,inte){
int numberOfWords=0;
字符l1=0;
字符l2=0;
StringBuilder convertInput=新的StringBuilder(getInput);
System.out.println(convertInput);
for(inti=0,i1=1;i
您可以使用以下工具轻松快速地完成此操作:
String phrase = "word1 word2 word3 word4";
String delims = " "; //u can declare more delims here like delims = " ,.{[]}\";
String[] tokens = phrase.split(delims);
tokens.length = number of words in your string
由于i1以1开头,它将到达getInput.length()(当我到达getInput.length()-1时),此时convertInput.charAt(i1)将超出范围。“当我尝试返回并替换文本时”-从概念上讲,没有理由在简单计算单词时替换文本。这对我来说意味着你的算法太复杂了(看看吧,的确如此)。这里有一些想法,看看它们是否能帮助您清理代码。StringBuilder的作用是什么?您应该排除空单词(标记)。每当您在一行中有两个分隔符时(例如回车+换行符),就会出现空单词。直到现在,我还不知道字符串标记。谢谢你的帮助!