java分割混乱的空格字符
|
我正在拆分一个字符串,其中包含Windows系统中的文件名。该字符串使用ascii FS将文件名与其他信息分开
例如filename.jpgFSotherInformationFSanotherPartOfInformation
下面是一些示例代码:
String fs = new String(new byte[]{(byte)32});
String information =\"filename (copy).jpg\"+fs+\"otherInformation\";
String[] parts = information.split(fs);
为什么split将空格分隔符与ascii-FS混淆了?
我应该使用其他拆分功能吗? Pattern.quote(fs)确实可以帮助... :-(
没有找到相关结果
已邀请:
4 个回复
久坡
是字符28,但是不应在文件名中使用此控制字符,仅用于某些罕见的二进制文件格式(我不知道一种使用它的格式) 空格字符为32,这就是为什么它看起来与拆分相同的原因,因为它是。 对于简单的字段分隔符,建议您使用\',\'或\'\\ t \',它们可以轻松地阅读为文本或使用电子表格程序包。 我建议逐步调试程序中的代码,以便您可以看到程序在做什么。
掸牛浓疗
(以相当复杂的方式)。以下是相等的,并显示您的问题:
ASCII字符
的编号为
,因此应该可以正常使用:
背景资料 文件分隔符FS是一个有趣的控制代码,因为它使我们了解了六十年代计算机技术的组织方式。现在,我们习惯于随机访问RAM和磁盘等介质,但是当定义ASCII标准时,大多数数据都是串行的。我不仅在谈论串行通信,还在谈论诸如打孔卡,纸带和磁带之类的串行存储。在这种情况下,使用单个控制代码来表示两个文件的分离显然是有效的。 FS是为此目的而定义的。 (资源) 发明“ 1”是为了分离真实文件,而不是分层文件目录中的文件名。从技术上讲,是的,您可以使用它,但是它具有不同的含义。
济畦刨
邵酮
甚至