问题 B: 英文短语缩写
时间限制: 1 Sec 内存限制: 128 MB提交: 685 解决: 102
[提交][状态][讨论版]
题目描述
对给定的英文短语写出它的缩写,比如我们经常看到的SB就是Safe Browsing的缩写。
输入
输入的第一行是一个整数T,表示一共有T组测试数据。
接下来有T行,每组测试数据占一行,每行有一个英文短语,每个英文短语由一个或多个单词组成;每组的单词个数不超过10个,每个单词有一个或多个大写或小写字母组成;
单词长度不超过10,由一个或多个空格分隔这些单词。
输出
请为每组测试数据输出规定的缩写,每组输出占一行。
样例输入
1
end of file
样例输出
EOF
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
while(input.hasNext()){
int N=input.nextInt();
input.nextLine();
while(N-->0){
String str=input.nextLine();
for(int i=0;i<str.length();i++){
if((i==0||str.charAt(i-1)==' ')&&str.charAt(i)!=' '){//重点理解
char c=str.charAt(i);
System.out.print((char)(c>='a'&&c<='z'?c-32:c));
}
}
System.out.println();
}
}
}
}
其中while(input.hasNext())是我们学校Oj规定的格式
作用:input.hasNext(),表示你是否输入数据,只要你输入数据,它就相当于while(1)+ input.next(),当你输入数据时,它就返回true,想要停下来,可以调用hasNext()的重载方法hasNext(String patten),
例如while(!input.hasNext("quit")),当输入quit时停止循环
As far as I'm concerned,nothing is more important that
划重点:
1:把所有条件都想全了什么时候获取单词首字母并输出::第一个字母不为空格时和某处前一个是空格且该处不为空格时,将该处输出
2.
int N=input.nextInt(); input.nextLine(); while(N-->0){ String str=input.nextLine();
此处的input.nextLine();语句是一个挺坑人的地方,当nextInt()后接nextLine()会出现错误后者会混到前者的输入当中,详解自行百度