Java 单词长度
题目内容:
你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it’s”算一个单词,长度为4。注意,行中可能出现连续的空格。
输入格式:
输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。
输出格式:
在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。
输入样例:
It’s great to see you here.
输出样例:
4 5 2 3 3 4
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
String s ; //字符串s
String word; //单词变量
int loc; //' '位置
s = in.nextLine(); //输入字符串s
while(true){
if(s.indexOf(' ') == -1) { //第一步,优先判断是否存在空格 ,不存在直接输出
loc = s.indexOf('.'); //'.'的位置
if( loc == 0) { //判断'.'的位置是否在第一个位置,是则输出空值
break;
}
word = s.substring(0,loc); //'.'的位置不在第一个位置,输出最后一个单词的长度结束
System.out.print(word.length());
break;
}
loc = s.indexOf(' '); //存在空格,设置空格位置
while(true) { //循环判断第一个空格是否在字符串的第一个位置,若是则删除该空格,否则跳出循环
if(loc == 0) {
s = s.substring(1);
}
loc = s.indexOf(' ');
if(loc != 0 || loc == -1) {
break;
}
}
if(s.indexOf(' ') == -1) { //第二步,继续优先判断是否存在空格 ,不存在直接输出(与第一步同理)
loc = s.indexOf('.');
if( loc == 0) {
break;
}
word = s.substring(0,loc);
System.out.print(word.length());
break;
}
word = s.substring(0,loc); //上述都结束且没有结束程序,输出单词长度
if(word.length() == 0) { //判断单词长度是否为空,是则输出空值
break;
}
System.out.print(word.length()+" ");
s = s.substring(loc+1);
}
in.close();
}
}
优质解法,Java split() 方法
版权声明:本文为CSDN博主「LolitaSian」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36667170/article/details/79872891
import java.util.Scanner;
public class Main{
private static Scanner in;
public static void main(String[] args) {
in = new Scanner(System.in);
String a ;
a = in.nextLine();
String count[] = a.split(" "); //以空格为界限将长字符串分割为短字符串,并存到字符数组里
for (int i=0; i < count.length; i++){
if (i<count.length-1){
if(count[i].length()!=0)
System.out.print(count[i].length()+" ");
}
else {
if(count[i].length()!=1) //“.”末尾句号
System.out.print(count[i].length()-1);
}
}
}
}
上一篇文章———>多项式加法——MOOC《零基础学Java语言》
下一篇文章———>《Java GPS数据处理 Mooc》