gpt4 book ai didi

java - 如何使用正则表达式替换字符

转载 作者:行者123 更新时间:2023-11-30 09:43:53 26 4
gpt4 key购买 nike

我从 IBM Mainframe 收到如下字符串(2 字节图形字体)

"〇;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W ;X;Y;Z;a;b;c;g;e;f;j;h;i;j;k;ー;m;n;o;p;q;r;s;t;u;v ;w;x;y;z;0;1;2;3;4;5;6;7;8;9;`;-;=;₩;~;!;@;#;¥;%;\ ;&;*;(;);_;+;|;[;];{;};:;";O;,;.;/;<;>;?;";

并且,我想将这些字符更改为 1 字节的 ascii 码

如何在 Java 中使用 java.util.regex.Matcher、String.replaceAll() 替换它们

目标字符:

;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W; X;Y;Z;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v; w;x;y;z;0;1;2;3;4;5;6;7;8;9;`;-;=;\;~;!;@;#;$;%;^; &;*;(;);_;+;|;[;];{;};:;";';,;.;/;<;>;?;";

最佳答案

这不是(正如其他响应者所说)字符编码问题,但正则表达式仍然是错误的工具。如果 Java 具有与 Perl 的 tr/// 运算符等效的功能, 将是正确的工具,但您可以很容易地对其进行手工编码:

public static String convert(String oldString)
{
String oldChars = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`-=₩~!@#$%^&*()_+|[]{}:"',./<>?";
String newChars = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`-=\\~!@#$%^&*()_+|[]{}:\"',./<>?";

StringBuilder sb = new StringBuilder();
int len = oldString.length();
for (int i = 0; i < len; i++)
{
char ch = oldString.charAt(i);
int pos = oldChars.indexOf(ch);
sb.append(pos < 0 ? ch : newChars.charAt(pos));
}
return sb.toString();
}

我假设第一个字符串中的每个字符对应于第二个字符串中相同位置的字符,并且第一个字符 (U+3000, 'IDEOGRAPHIC SPACE') 应该是转换为 ASCII 空格 (U+0020)。

请务必将源文件保存为 UTF-8,并在编译时包含 -encoding UTF-8 选项(或告诉您的 IDE 这样做)。

关于java - 如何使用正则表达式替换字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8164659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com