Java自定义转义字符

时间:2019-03-22 17:58:55

标签: java regex escaping

我正在一个项目上。客户端和服务器应使用\ a \ b作为所有消息的结尾。因此我的信息可能是"text\a\b"。这个应该有6个字符。我想使用它时遇到错误,因为Java不知道\ a转义序列。还有一个更大的问题是我无法检测到此序列。我尝试过:

char a;
if(a == '\a'){
   break;
}

在我读取输入时循环播放。但这是行不通的。我无法使用扫描仪,因为它阻止了套接字和超时时间。 非常感谢您的建议。

2 个答案:

答案 0 :(得分:0)

如果您正在寻找警报/门铃的转义序列,则使用八进制转义序列:'\ 007'

    String s = "text\007\b";
    assert s.charAt(4) == '\007';
    assert s.charAt(5) == '\b';

答案 1 :(得分:0)

如果您实际上只需要正则表达式,请看看this

假设您正在检查每个字符,并且我已经理解了您的问题:

boolean escapeFlag = false;
for (int i = 0; i < stringy.length(); i++) {
    if (escapeFlag) {
        if (stringy[i] == 'a') {
            ....
        }
    } else if (stringy[i] == '\') {
        escapeFlag == true;
    }