Java基础编程练习

6-60 字符串加密程序分数 10

现需要设计一个字符串加密程序String getHint(String str, String key)​​,该程序接收两个字符串变量分别为str和key,加密规则如下:

1.当str与key相同位置字符相同时,显示该字符;
2.当str与key相同位置字符不同且str中出现key中包含的字符时,str中该字符加密为+;
3.当str中某个字符不存在上述两种情况的字符加密为*。

函数调用示例:

getHint("AAAAA","HARPS");   //+A+++
getHint("HELLO","HARPS");   //H****
getHint("HEART","HARPS");   //H*++*

说明:只需要补全public static String getHint(String str, String key)​​静态方法即可

输入样例:

AAAAA
HARPS

输出样例:

+A+++

裁判测试程序样例:

import java.util.Scanner;
 
public class Main {
  
    public static String getHint(String str, String key)
    {
        /* 请在这里填写答案 */
    }
  
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        String str=in.nextLine();
        String key=in.nextLine();
  
        System.out.println(getHint(str,key));
    }
}

以下是答案


import java.util.Scanner;

public class Pta_6_60 {
	public static String getHint(String str,String key) {
		/*
		 * 程序设计如下
		 * 首先把这两个String转换为数组形式
		 * 建立一个for循环,中if相同该位置就是这个,else中增加一个遍历,查找后一个中是否存在,if有为+,else为*
		 */
		//以下是答案
		StringBuilder result = new StringBuilder();//可变String类

		for(int i = 0;i<str.length();i++) {
			char charStr = str.charAt(i);
			char charKey = key.charAt(i);

			if(charStr==charKey) {
				result.append(charStr);
			}else if(key.indexOf(charStr)!=-1){
				result.append("+");
			}else {
				result.append("*");
			}
		}
		return result.toString();
		//以上是答案
	}
	public static void main(String args[]) {
		Scanner in = new Scanner(System.in);
		String str = in.nextLine();
		String key = in.nextLine();
		//System.out.println(getHint("AAAAA", "HARPS"));   // +A+++
	    //System.out.println(getHint("HELLO", "HARPS"));   // H****
	    //System.out.println(getHint("HEART", "HARPS"));
		System.out.println(getHint(str,key));
	}

}
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值