pat甲级 1035 Password

题目:

中文翻译:就是有一些参加pat考试的用户给他们账号密码的时候,有一些憨憨对于密码中的一些符号会出现误会

      1和l认不清   0和O认不清  所以解决办法就是把这四个符号用其余符号代替一下

1)1用@代替

2)0用%代替

3)l用L代替

4)O用o代替

注意输出格式  末尾的输出格式有单复数的问题和is和are的区别,注意搞清楚

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {

    public static void main(String[] args){
        List<Integer> list = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        scanner.nextLine();
        String a[][] = new String[n][2];//申请一个n行2列的数组
        for(int i=0;i<n;i++){
            a[i]=scanner.nextLine().split(" ");
        }
        int sum=0;
        for(int i=0;i<n;i++){
            if(a[i][1].contains("1")||a[i][1].contains("l")||a[i][1].contains("0")||a[i][1].contains("O")){
                a[i][1]=a[i][1].replace('1','@');
                a[i][1]=a[i][1].replace('l','L');
                a[i][1]=a[i][1].replace('0','%');
                a[i][1]=a[i][1].replace('O','o');
                sum++;
                list.add(i);

            }
        }

        if(sum==0){
            if(n==1){
                System.out.println("There is 1 account and no account is modified");
            }
            else{
                System.out.println("There are " +n+ " accounts and no account is modified");//有is和are的区别还有account的单复数问题
            }

        }else
        {
            System.out.println(sum);
            for(int i = 0;i<list.size();i++){
                System.out.println(a[list.get(i)][0]+" "+a[list.get(i)][1]);//replace函数有个tips需要知道的就是,replace()是不会改变现有字符串的内容,他会返回修改的新字符串,所以字符串replace后必须赋值
            }
        }



   }
}

  

posted @ 2021-05-27 18:46  chenyuan#  阅读(33)  评论(0编辑  收藏  举报