嗨,我有一个存储在Linux系统中的文件,其中包含特殊字符^ C 像这样:
ABCDEF ^ CIJKLMN 现在,我需要在Java中读取此文件,并检测是否存在要拆分的^ C。 在UNIX中读取文件的问题。我必须使用cat -v fileName在其他我看不见的地方看到特殊的ch ^ ^ C。 这是我的示例代码。
Cache type: Read/Write
Cache line size: 64
Cache size: 16384
Global memory size: 4766494720
Constant buffer size: 3376637952
Max number of constant args: 8
Local memory type: Scratchpad
Local memory size: 32768
答案 0 :(得分:2)
您正在检查该行是否包含字符串“ ^ C”,而不是字符'^ C'(与0x03
或{ {1}})。您应该搜索字符\u0003
。这是一个适用于您的情况的代码示例:
0x03
byte[] fileContent = new byte[] {'A', 0x03, 'B'};
String fileContentStr = new String (fileContent);
System.out.println (fileContentStr.contains ("^C")); // false
System.out.println (fileContentStr.contains (String.valueOf ((char) 0x03))); // true
System.out.println (fileContentStr.contains ("\u0003")); // true, thanks to @Thomas Fritsch for the precision
String[] split = fileContentStr.split ("\u0003");
System.out.println (split.length); // 2
System.out.println (split[0]); // A
System.out.println (split[1]); // B
字符以Caret Notation显示,并且必须解释为单个字符。