/*
单词长度(5分)
题目内容:
你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。
这里的单词与语言无关,可以包括各种符号,比如“it’s”算一个单词,长度为4。注意,行中可能出现连续的空格。
输入格式:
输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。
输出格式:
在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。
输入样例:
It’s great to see you here.
输出样例:
4 5 2 3 3 4
*/
注意:当输入空字符串时,比如:仅输入 ‘.’ 时, 不需要输出单词长度0,直接结束程序即可
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner inputScanner = new Scanner(System.in);
int[] len = new int[100];
String string = inputScanner.nextLine();//输入字符串
int count = 0;
int lenTemp = 0;
boolean sign = false;
int i;
//遍历数组中的每个字符
for (i = 0; i < string.length(); i++) {
if (string.charAt(i) != ' ' && string.charAt(i) != '.') { //如果该字符不是' '或者'.',则该单词长度自增
lenTemp++;
sign = false;
}else if (lenTemp != 0) {//当统计的单词长度不为0时,才可能被保存;对应情况:如果输入'.....', 则不需要输出长度
sign = true;
}
if (sign) { //保存单词长度到数组len[count]中,并且初始化单词长度为0,并且单词数自增
len[count] = lenTemp;
lenTemp = 0; //初始化单词长度为0
count++; //单词数增加1
sign = false; //初始化标记
}
}
//如果输入非空字符串时,输出每个单词长度,注意输出格式;
//当输入空字符串时,比如:仅输入'.'时, 不需要输出单词长度为0, 此时的count仍然为0,则不会进入该循环
for (i = 0; i < count; i++) {
if (i != count-1) {
System.out.printf("%d ", len[i]);
}
else {
System.out.printf("%d\n", len[i]);
}
}
}
}
如果有问题可以留言交流,我一定及时回复;
如果采纳记得点个赞,我在集赞哈哈哈