package com.alimama.mdrill.index; import java.util.HashMap; public class SplitStrEncode { public static void main(String[] args) { System.out.println(String.valueOf(parseSplit("8@1")).equals(String.valueOf("\001"))); System.out.println(String.valueOf(parseSplit("8@5")).equals("\005")); System.out.println(String.valueOf(parseSplit("8@10")).equals("\010")); System.out.println(String.valueOf(parseSplit("16@10")).equals(String.valueOf((char)0x010))); System.out.println(String.valueOf(parseSplit("16@11")).equals(String.valueOf((char)0x011))); } private static HashMap<String,String> match=new HashMap<String,String>(); static{ match.put("default", "\001"); match.put("tab", "\t"); for(byte i=0;i<Byte.MAX_VALUE&&i<500;i++) { match.put("8@"+Integer.toOctalString(i), String.valueOf((char)i)); } for(byte i=0;i<Byte.MAX_VALUE&&i<500;i++) { match.put("16@"+Integer.toHexString(i), String.valueOf((char)i)); } } public static String parseSplit(String str) { if(str.equals("\\001")) { return "\001"; } if(str.equals("default")) { return "\001"; } if(str.equals("tab")) { return "\t"; } if(match.containsKey(str)) { return match.get(str); } return str; } }