用于交换字符串中字符的Java程序

时间:2014-05-10 15:09:21

标签: java

我正在编写一个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);

2 个答案:

答案 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);