package password;
import java.util.Scanner;
public class JiaMi {
String str;
char str1[];
//接受字符串
public String inputString(String str) {
this.str= str;
return this.str;
}
public void chuShiHua() {
char str1[] = str.toCharArray();
}
//加密
public void jiaMi() {
for (int i = 0; i < str1.length; i++) {
if(str1[i]>='a' && str1[i] <='w') {
str1[i] +=3;
}else if(str1[i]>'w') {
str1[i]-=23;
}/*else if(str[i] == 'y') {
str[i]='b';
}else if(str[i] == 'z' ) {
str[i] ='c';*/
/*}*/
}
System.out.println("加密后的字符串为:");
for (int i = 0; i < str1.length; i++) {
System.out.print(str1[i]);
}
}
//解密
public void jieMi() {
for (int i = 0; i < str1.length; i++) {
if(str1[i]>='d' && str1[i]<='z') {
str1[i] -=3;
}else if(str1[i]<'d'){
str1[i]+=23;
}
}
System.out.println("解密后的字符串为:");
for (int i = 0; i < str1.length; i++) {
System.out.print(str1);
}
}
//主方法测试
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
JiaMi jm = new JiaMi();
System.out.println("请输入一个字符串:");
String str = input.next();
jm.inputString(str);
System.out.println("请选择:\n 1.加密 2.解密");
int choice = input.nextInt();
if(choice ==1) {
jm.jiaMi();
}else if(choice ==2) {
jm.jieMi();
}
}
}这个程序加密过程正确 我是把字符串转换成 字符数组然后比对,加密过程无问题
但是解密直接报错
求解!!
数组这我有点乱,我定义了一个成员变量str1[] 想通过加密步骤把加密的数组传到成员变量str1[] 里
然后 解密步骤直接用这个str1[]里的字符进行解密。
现在我写的代码明显是不对的;求解;
顺便问下 用 toCharArray()方法分解后的字符如何在重新组合成字符串?
import java.util.Scanner;
public class JiaMi {
String str;
char str1[];
//接受字符串
public String inputString(String str) {
this.str= str;
return this.str;
}
public void chuShiHua() {
char str1[] = str.toCharArray();
}
//加密
public void jiaMi() {
for (int i = 0; i < str1.length; i++) {
if(str1[i]>='a' && str1[i] <='w') {
str1[i] +=3;
}else if(str1[i]>'w') {
str1[i]-=23;
}/*else if(str[i] == 'y') {
str[i]='b';
}else if(str[i] == 'z' ) {
str[i] ='c';*/
/*}*/
}
System.out.println("加密后的字符串为:");
for (int i = 0; i < str1.length; i++) {
System.out.print(str1[i]);
}
}
//解密
public void jieMi() {
for (int i = 0; i < str1.length; i++) {
if(str1[i]>='d' && str1[i]<='z') {
str1[i] -=3;
}else if(str1[i]<'d'){
str1[i]+=23;
}
}
System.out.println("解密后的字符串为:");
for (int i = 0; i < str1.length; i++) {
System.out.print(str1);
}
}
//主方法测试
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
JiaMi jm = new JiaMi();
System.out.println("请输入一个字符串:");
String str = input.next();
jm.inputString(str);
System.out.println("请选择:\n 1.加密 2.解密");
int choice = input.nextInt();
if(choice ==1) {
jm.jiaMi();
}else if(choice ==2) {
jm.jieMi();
}
}
}这个程序加密过程正确 我是把字符串转换成 字符数组然后比对,加密过程无问题
但是解密直接报错
求解!!
数组这我有点乱,我定义了一个成员变量str1[] 想通过加密步骤把加密的数组传到成员变量str1[] 里
然后 解密步骤直接用这个str1[]里的字符进行解密。
现在我写的代码明显是不对的;求解;
顺便问下 用 toCharArray()方法分解后的字符如何在重新组合成字符串?
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;import java.util.Scanner;class JiaMi {
String str;
char str1[]; // 接受字符串
public String inputString(String str) {
this.str = str;
return this.str;
} public void chuShiHua() {
str1 = str.toCharArray();
} // 加密
public void jiaMi() {
chuShiHua();
for (int i = 0; i < str1.length; i++) {
if (str1[i] >= 'a' && str1[i] <= 'w') {
str1[i] += 3;
} else if (str1[i] > 'w') {
str1[i] -= 23;
}/*
* else if(str[i] == 'y') { str[i]='b'; }else if(str[i] == 'z' ) {
* str[i] ='c';
*/
/* } */
}
System.out.println("加密后的字符串为:");
for (int i = 0; i < str1.length; i++) {
System.out.print(str1[i]); }
} // 解密
public void jieMi() {
chuShiHua();
for (int i = 0; i < str1.length; i++) {
if (str1[i] >= 'd' && str1[i] <= 'z') {
str1[i] -= 3;
} else if (str1[i] < 'd') {
str1[i] += 23;
}
}
System.out.println("解密后的字符串为:");
for (int i = 0; i < str1.length; i++) {
System.out.print(str1[i]);
}
} // 主方法测试
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
JiaMi jm = new JiaMi();
System.out.println("请输入一个字符串:");
String str = input.next();
jm.inputString(str);
System.out.println("请选择:\n 1.加密 2.解密");
int choice = input.nextInt();
if (choice == 1) {
jm.jiaMi();
} else if (choice == 2) {
jm.jieMi();
}
}
}