/**
* 题目内容:
* 你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。
* 这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。
* 注意,行中可能出现连续的空格。
*
* 输入格式:
* 输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。
*
* 输出格式:
* 在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。
*
* 输入样例:It's great to see you here.
*
* 输出样例:4 5 2 3 3 4
*/
import java.util.Scanner;
public class Homework1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
String[] word=new String[100];//定义字符数组用来储存数据
int len;//定义字符串长度
int i=0;//定义数组下标初始值
while(true)
{
word[i]=in.next();//输入数据
//判断是否输入了下一个单词,如果输入是空格,那个数组就会储存下一个单词
if(word[i].equals(" "))
{
i++;
}
len=word[i].length();//记录数组长度,定义变量是为了方便书写
//判断输出
if(!word[i].contains("."))
{//不包含"."可以直接输出单词长度
System.out.print(len+" ");
}
else if(word[i].contains("."))
{//包含点,说明已经输入完毕,计算长度之后减去1(题目要求,然后跳出循环
System.out.print(len-1+" ");
break;
}
}
in.close();
}//main 函数结束
}//类结束
/**
* 本次代码参考了用户 KoQo 的c语言代码,因为Java的输入不支持 char 类型,所以改成了字符数组
* (一开始想到的就是数组,但是自己写了半天没写出来),通过计算每个字符数组的长度输出结果
*/
算法很难自己想出来,多看看别人代码,分析一下