题目内容:
你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格。
输入格式:
输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。
输出格式:
在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。
输入样例:
It's great to see you here.
输出样例:
4 5 2 3 3 4
时间限制:500ms内存限制:32000kb
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String a= in.next();
char ch='.';
while(a.length()>0){
if(a.charAt(a.length()-1)==ch){//charAt() 字符串中的额第几个
System.out.print((a.substring(0, a.length()-1)).length());//(substring).length读取()内中间的字符个数
break;
}
else{
System.out.print(a.length()+" ");
a = in.next();
}
}
}
}
方法二(更标准):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import java.util.Scanner; public class hello { public static void main(String[]
args) { //
TODO Auto-generated method stub Scanner
in= new Scanner(System.in); String
s=in.nextLine(); char ch= '.' ; String[]
word=s.split( "\\s{1,}" ); //正则表达式,一个或一个以上的空格 for ( int i= 0 ;i<word.length- 1 ;i++) { System.out.print(word[i].trim().length()+ "
" ); //用正则表达式后,trim()可以不要 } String
wend=word[word.length- 1 ].trim(); if (wend.charAt(wend.length()- 1 )==ch) { System.out.print(wend.substring( 0 ,
wend.length()- 1 ).length()); } } } |