IMAUOJ-1241 Problem B:英文短语缩写
程序员文章站
2022-04-01 17:22:30
...
题目描述
对给定的英文短语写出它的缩写,比如我们经常看到的SB就是Safe Browsing的缩写。
输入
输入的第一行是一个整数T,表示一共有T组测试数据。
接下来有T行,每组测试数据占一行,每行有一个英文短语,每个英文短语由一个或多个单词组成;每组的单词个数不超过10个,每个单词有一个或多个大写或小写字母组成;
单词长度不超过10,由一个或多个空格分隔这些单词。
输出
请为每组测试数据输出规定的缩写,每组输出占一行。
样例输入
end of file
样例输出
EOF
个人题目思路
利用Stirng类的split方法将输入的字符串根据空格分割成字符串数组,遍历字符串数组,当字符串数组元素不是单空格(即length>0,这种情况在输入两个空格时会出现)时,把元素的charAt(0)累加到空白字符串中,最后将累加好的字符串全部转大写输出。
源代码
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
int t=sc.nextInt();
sc.nextLine();
while(t-->0){
String str=sc.nextLine();
String[] s=str.split(" ");
String result="";
for(int i=0;i<s.length;i++){
if(s[i].length()>=1)
result+=s[i].charAt(0);
}
System.out.println(result.toUpperCase());
}
}
}
}
注:
String中的split(",")和split(",",-1)的区别
1、当字符串最后一位有值时,两者没有区别
2、当字符串最后一位或者N位是分隔符时,前者不会继续切分,而后者继续切分。即前者不保留null值,后者保留。
package stringsplit; public class stringSplit { public static void main(String[] args) { String line = "hello,,world,,,"; String res1[] = line.split(","); String res2[] = line.split(",", -1); int i=1; for(String r: res1) System.out.println(i+++r); System.out.println("========================"); i=1; for(String r: res2) System.out.println(i+++r); } }
输出结果是:
1hello
2
3world
========================
1hello
2
3world
4
5
6