Java正则表达式替换每个2个字符

时间:2017-11-23 20:52:59

标签: java regex

输入:" 107501AB021F" 输出:" 1075 1AB 21F"

  1. 假设输入始终为12位十六进制值。
  2. 对于每个2位数的字符,如果第一个位置出现0,则应将其替换为空格
  3. 我知道我们可以使用if条件和charAt来执行此操作,但是可以选择在不使用它的情况下执行此操作吗?

1 个答案:

答案 0 :(得分:0)

我认为最有效的解决方案是迭代并比较char数组中的每个第二个字符。

public class ReplaceOddIndexesInString {
    public String replace(final String hex){
        final char[] arr = hex.toCharArray();
        for (int i = 0; i<arr.length; i=i+2) {
            if (arr[i]=='0'){
                arr[i]=' ';
            }
        }
        return new String(arr);
    }

    @Test
    public void testIt(){
        TestCase.assertEquals("1075 1AB 21F", replace("107501AB021F"));
    }
}