我目前有一个字符串,我希望将每4个字符换成另一组四个字符。 EG
输入:1001 1101 0001 1001
输出:1101 1001 1001 0001
我真的不知道如何实际交换角色。我会逐个字符地做,还是有一些方法可以一次交换多个。非常感谢! :)
答案 0 :(得分:1)
我认为String.replace()方法是合适的。
答案 1 :(得分:0)
Java中的字符串是不可变的,这意味着您无法更改它们。如果您想进行这样的修改,请改用StringBuilder。它有获取和替换子串的方法(在你的情况下是一个4个字符的子串)。
API:http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html
答案 2 :(得分:0)
我会在空格上拆分字符串,这会产生一个字符串数组。
从那里你可以循环遍历每个字符串并将其替换为您想要的结果。完成后,您可以使用StringBuilder
答案 3 :(得分:0)
String input = "1001 1101 0001 1001";
//make array of strings in order to swap them, space being the common trait
String[] array = input.split("\\s");
//then swap array elements
for(int i = 0;i<array.length-1;i+=2){
String tmp = array[i];
array[i]= array[i+1];
array[i+1] = tmp;
}
//build the output
String output = "";
for(int i = 0;i<array.length;i++){
if(i<array.length-1)
output+= array[i] + " ";
else
output+= array[i];
}
答案 4 :(得分:0)
StringBuilder.replace()比 String.replace()更合适,因为它不会复制整个字符串。
如果你知道字符串的大小是不变的,那么char []可能效果更好。如果您总是替换字符的修复计数,则 replace()调用会不必要地转移字符。
如果您想考虑第三方库(以防他们帮助满足其他要求),Apache Commons最后有StringUtils.overlay()和其他一些有用的String utils