所以伙计们,我做了一个程序来计算一个给定的句子有多少个单词和字母。例如,如果我的输入是“stack overflow”,它将返回2个单词和13个字母。但我一直有一个问题,阅读单一的字母,也包含在另一个词在句子中。例如,输入“a alex”返回2个单词和4个字母,而它应该返回5个字母。。。我注意到,当它读到第一个“a”时,第二个字符串“alex”出于某种原因变成了“lex”,但我不知道如何解决它。。。这是片段,提前告诉你!
package Uri;
import java.util.Scanner;
import java.lang.Math;
import java.lang.StringBuilder;
public class Facil{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String lida=sc.nextLine();
int letras=0, palavras=0;
while(lida != ""){
System.out.println("current sentence = " + lida);
if (lida.charAt(0) == ' ') {
lida = lida.replaceFirst(" ", "");
continue;
}
if (!lida.contains(" ")) {
palavras++;
letras+=lida.length();
System.out.println("quantity of added letters = " + lida.length());
break;
}
String separada = lida.substring(0,lida.indexOf(" "));
System.out.println("separated word = " + separada);
if (!separada.contains("..") && separada.endsWith(".") || !separada.contains(".")){
palavras++;
letras+=separada.length();
lida = lida.replace(separada, "");
System.out.println("added letters = " + separada.length());
}
}
System.out.println("\n RESULT: ");
System.out.println("quantity of words = " + palavras);
System.out.println("quantity of letters = " + letras);
}
}
}
1条答案
按热度按时间8fsztsew1#
你的问题来自
lida = lida.replace(separada, "");
将“a”替换为空格用这个怎么样
lida.split(" ")
然后得到字数数组的长度?对于每个单词,使用String.length()
数数字母?