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));
}
}