输入字符串为"ABC\1067546161"
我想删除“\”反斜杠并仅从字符串中获取数字但我们正在使用ascii value.Result字符串打印后为ABCF7546161。
请提出一些解决方案。
输入字符串为
ABC\1067546161
预期结果为
1067546161
答案 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]);
}