我正在编写一个Java程序来加密一个四位数字。有些程序要求将第1位数字与第3位和第2位数据交换为第4位......这是我写的内容,但它不起作用。 例如,如果我的输入是9876,那么在这四次交换之后它会给出输出9898.这意味着第一个和第三个交换不起作用。但如果我对第二次和第四次掉期发表评论,那么第一次和第三次互换就会起作用。
char ch;
ch=str.charAt(0);
str=str.replace(str.charAt(0),str.charAt(2));
str=str.replace(str.charAt(2),ch);
ch=str.charAt(1);
str=str.replace(str.charAt(1),str.charAt(3));
str=str.replace(str.charAt(3),ch);
答案 0 :(得分:2)
通过调用String
检索toCharArray()
实例的内部字符数组,然后使用强大的帮助器swap()
方法交换该char数组的特定元素。然后将修改后的char数组转换回String
。
答案 1 :(得分:1)
您也可以使用子字符串,例如:
str = str.substring(2,3) + str.substring(3,4) + str.substring(0,1) + str.substring(1,2);
最后两位数改为前两位也是等价的(它适合你的情况而且速度更快):
str = str.substring(2,4) + str.substring(0,2);