如何从java中具有ASCII字符串组合的字符串中删除反斜杠(“\”)

时间:2016-08-08 07:56:16

标签: java

输入字符串为"ABC\1067546161"

我想删除“\”反斜杠并仅从字符串中获取数字但我们正在使用ascii value.Result字符串打印后为ABCF7546161。

请提出一些解决方案。

  

输入字符串为ABC\1067546161

     

预期结果为1067546161

3 个答案:

答案 0 :(得分:2)

我认为这可行,但代码很丑陋......

    String word = "ABC\1067546161";
    char badChar = word.charAt(3);
    String[] arr = word.split(Character.toString(badChar));
    System.out.println(Integer.toOctalString(badChar) + arr[1]);

你在问题​​中只提到了一个字符串,但在几种情况下,这很可能不起作用。

答案 1 :(得分:1)

可能是这样的 "ABC\1067546161".replaceAll("[a-zA-Z\\]", "")

答案 2 :(得分:1)

正如@TheLostMind在注释中指出的那样,您无法直接替换反斜杠,因为String是使用该值创建的。

唯一的方法是操作输入本身并将其转换为字节数组而不是字符串。然后你可以调用String构造函数,它以byte []作为参数,不会被转换。

完成后,您可以使用正则表达式删除您不想要的部分。以下是我用来测试此代码的代码:

public static void main(String[] args) {
    // Input manipulation.
    byte[] input = {'A','B','C','\\','1','0','6','7','5','4','6','1','6','1'};
    String string = new String(input);
    System.out.println(string);

    // Splitting.
    String[] result = string.split("\\\\");
    System.out.println(result[1]);
}