相关疑难解决方法(0)

使用Java解析包含转义字符的字符串


我想知道是否有人可以帮我弄清楚如何解析具有以下格式的字符串:

;field1-field2-fieldN;field1-field2-fieldN;
Run Code Online (Sandbox Code Playgroud)

每条记录都以';'分隔 并且记录中的每个字段由" - "分隔.复杂的是,各个字段可能包含转义的分隔符字符,如"\;" 要么 "-".这导致我下面的简单解析代码失败.所以我想要做的是提出与分隔符匹配但与转义分隔符不匹配的正则表达式.我的正则表达式知识并不是那么好,但我希望必须有一种方法可以将"([^ \;])"和"([;])"结合起来得到我需要的东西.

public static List<ParsedRecord> parse(String data) {
    List<ParsedRecord> parsedRecords = new List<ParsedRecord>();
    String[] records = data.split(";");
    for (String record : records) {
        String[] fields = data.split("-");
        parsedRecords.add(new parsedRecord(fields));
    }
    return parsedRecords;
}
Run Code Online (Sandbox Code Playgroud)

首先十分感谢.

java regex

5
推荐指数
2
解决办法
4670
查看次数

将 Unicode 转义符替换为相应的字符

我正在尝试将代码点(例如 )转换\\u00FC为它代表的字符。

\n\n
import javax.swing.JOptionPane;\n\npublic class Test {\n    public static void main(String[] args) {\n        String in = JOptionPane.showInputDialog("Write something in here");\n        System.out.println("Input: " + in);\n        // Do something before this line\n        String out = in;\n        System.out.print("And Now: " + out);\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

举个例子来解释我的意思:

\n\n

第一行控制台:Input: Hall\\u00F6

\n\n

第二条控制台线:And Now: Hall\xc3\xb6

\n\n

编辑:因为有时它不适用于 The Trombone Willy 的答案中的多个 Unicode,这里是修复的代码:

\n\n
public static String unescapeUnicode(String s) {\n    StringBuilder r = new StringBuilder();\n    for (int i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

java string unicode char unicode-escapes

1
推荐指数
1
解决办法
1934
查看次数

标签 统计

java ×2

char ×1

regex ×1

string ×1

unicode ×1

unicode-escapes ×1