⼯作中碰到的Java问题整理及解决⽅案
1.SOH分隔符(Notepad++)
SOH是ASCII码表为ASCII值==1的控制字符(不可见)char字符:0x01
完整ASCII码表见:
Java String.split() 以SOH为分隔符的字符串
//第⼀种⽅案(最优解决⽅案)
lineTxt.split("\001", -1);
str.split("\u0001", -1);
//第⼆种⽅案和第⼀种类似
private static final byte[] SOH = { 0x01 };
private static final String SPLIT = new String(SOH);
lineTxt.split(SPLIT, -1);
//第三种解决⽅案⽐较⿇烦(之前不知道第⼀种解决⽅案)
//先把SOH字符替换为‘|’,再使⽤split("\\|", -1);
public static String conver(String lineTxt){
char[] cs = CharArray();
StringBuilder builder = new StringBuilder();
for (char c : cs) {
if(c == 0x01){
builder.append("|");
}else{
java中split的用法builder.append(c);
}
}
String();
}
测试第⼀种⽅案
/**
* 测试SOH控制字符为分隔符
*/
@Test
public void test(){
char c = 0x01;
String xdrstr = "2018072607182018-07-26 07:18:34.3422018-07-26 07:18:34.3744600773516111053532680788981525353268076\\N25525525525565535\\N6 System.out.println(xdrstr.split("\001")[1]);
}
@Test
public void test09(){
String str = "428\u00011\u000152358\u00010\u00010\u00010\u0001416\u00013102\u000128985\u00010\u00012018-11-19 16:48:33.578653440\u0001281868 System.out.println(str.split("\u0001", -1)[40]);
}
Linux下awk分析结构化⽂件(以SOH为分隔符)分隔符转义,单双引号是有区别的
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论