PAT(上級レベル)1035パスワード(20ポイント)JAVAのリアライズ

ここに画像を挿入説明

サンプル入力1:

3
Team000002 Rlsp0dfa
Team000003はperfectpwd
Team000001 R1spOdfaを

サンプル出力1:

2
Team000002 RLSP%DFA
Team000001 R @ spodfa

サンプル入力2:

1
team110 abcdefg332

出力例2:

そこ1つのアカウントであり、何のアカウントが変更されていません

サンプル入力3:

2
team110 abcdefg222
team220 abcdefg333

サンプル出力3:

そこ2つのアカウントがあり、何のアカウントが変更されていません

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int total = Integer.valueOf(sc.nextLine());
		int count = 0;
		StringBuilder out = new StringBuilder();
		// 输入
		for (int i = 0; i < total; i++) {
			String line = sc.nextLine();
			String[] arr = line.split(" ");
			String name = arr[0];
			String pwd = arr[1];

			// 判断是否修改
			boolean modified = false;
			if (pwd.indexOf("1") != -1 || pwd.indexOf("0") != -1 || pwd.indexOf("l") != -1 || pwd.indexOf("O") != -1) {
				count++;
				modified = true;
			}

			// 修改
			pwd = pwd.replaceAll("1", "@").replaceAll("0", "%").replaceAll("l", "L").replaceAll("O", "o");
			if (modified) {
				out.append(name + " " + pwd + "\n");
			}
		}

		// 输出
		if (count == 0) {
			if (total == 1) {
				System.out.println("There is 1 account and no account is modified");
			} else {
				System.out.println("There are " + total + " accounts and no account is modified");
			}
		} else {
			System.out.println(count);
			out = out.deleteCharAt(out.length() - 1);
			System.out.println(out.toString());
		}
	}
}

ここに画像を挿入説明

公開された83元の記事 ウォンの賞賛1 ビュー1009

おすすめ

転載: blog.csdn.net/qq_44028719/article/details/104001868