name

题目描述

lpq同学最近突然对外国人的名字产生了兴趣,特别是外国女生的名字,于是他开始试图去认识一些国外的女生。

随着认识的女生数量越来越多,lpq发现他的脑子不够用了——他不能准确地记住每个女生的名字。终于有一天,当他又把Hello Kitty和Dear Amy的名字弄混并遭到暴力后,他突发奇想:如果我把每个人的名字按不同部分的首字母变成缩写,就便于记忆,也就不会把名字弄混了。

比如:Hello Kitty简写成HK,Dear Amy简写成DA。

lpq还决定,对于名字简写长度大于5(不包括5)的女生,他便放弃交往。 
但是lpq认识的女生太多了,于是他想到了作为神犇的你,请你帮助他。

输入

第一行输入一个整数N(N<=10000),表示女生的人数。

接下的N行,每行包含一个字符串,为一个女生的全名,其中名字不同部分之间用’~!@#$%^&*()’分隔,字符串的长度不大于100。

保证输入的字符只有字母及’~!@#$%^&*()’(不包括引号)。

输出

输出第一行为一个整数K,表示可以继续交往的女生人数。

接下来K行,每一行包括由若干字母组成的字符串,表示对应名字的缩写。

样例输入

3
Hello@#^Kitty
Dear~^Amy
Sro~Li~Pei~Qian

样例输出

3
HK
DA
SLPQ


name_第1张图片

 

算法:
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		String str[] = new String[n];
		String ss[] = new String[n];
		sc.nextLine();
		for (int i = 0; i < ss.length; i++) {
			str[i] = sc.nextLine();
		}
		
		for (int i = 0; i < ss.length; i++) {
			ss[i] = str[i].substring(0, 1);
			for (int j = 1; j < str[i].length(); j++) {
				if(f(str[i].charAt(j))&&!f(str[i].charAt(j-1))) {
					if(j==str[i].length()-1) {
						ss[i] += str[i].substring(j);
					}else {
						ss[i] += str[i].substring(j, j+1);
					}
				}
			}
		}
		int t = 0;
		for (int i = 0; i < ss.length; i++) {
			if(ss[i].length()>5) {
				continue;
			}else {
				t++;
			}
		}
		System.out.println(t);
		for (int i = 0; i < ss.length; i++) {
			if(ss[i].length()>5) {
				continue;
			}else {
				System.out.println(ss[i]);
			}
		}
		
	}

	private static boolean f(char charAt) {
		if((charAt>='a'&&charAt<='z')||(charAt>='A'&&charAt<='Z')) {
			return true;
		}
		return false;
	}
}

  

 

转载于:https://www.cnblogs.com/-rainbow-/p/8902067.html

你可能感兴趣的:(name)