Java 使用拆分时应如何处理空格字符
显然,当我使用Java 使用拆分时应如何处理空格字符,java,regex,file,split,Java,Regex,File,Split,显然,当我使用S.split(“”时,我的代码文件中有“”(空格),它会被忽略。我想知道是否有办法克服这个问题。我所想的和在下面代码中编写的内容不起作用,但是它适用于所有其他字符 String codeArr[] =code.split("\\r?\\n"); int k=0; while (k<codeArr.length-1) { String[] tmpCode=codeArr[k].s
S.split(“”
时,我的代码文件中有“”
(空格),它会被忽略。我想知道是否有办法克服这个问题。我所想的和在下面代码中编写的内容不起作用,但是它适用于所有其他字符
String codeArr[] =code.split("\\r?\\n");
int k=0;
while (k<codeArr.length-1)
{
String[] tmpCode=codeArr[k].split(" ");
if (tmpCode.length!=2)
HuffCodeToCh.put(tmpCode[0]," ");
else
HuffCodeToCh.put(tmpCode[1],tmpCode[0]);
k+=1;
}
我想将字符及其二进制代码保存在hashMap中,如代码所示。但是,我上面编写的代码没有将“
保存在hashmap中。我不知道如何修复它。使用
试试这个:
codeArr[k].split(" (?=\\S)");
所以
x 100 -> {"x","100"}
100 -> {" ","100"}
11 -> {" ", "11"} (two spaces)
具体来说,整个循环就是:
for (String line : code.split("\\r?\\n"))
HuffCodeToCh.put("" + line.charAt(0), line.substr(2));
一个基本不相关的注意事项是,您的变量
HuffCodeToCh
没有遵循Java命名约定,这强烈建议为类型保留首字母大写。您能给我一个提示,而不是盲目地投反对票吗?而不是投反对票的人。。它被忽略了,这是错误的split()
根据传递的正则表达式拆分行,并返回数组-1、错误的代码格式(缩进混乱、垂直空格混乱、运算符周围没有空格)、无法识别调试工作……在char/line/regex上拆分时,结果数组将不包含您拆分的内容并不是它解决了任何问题,而是为什么您先读取文本,然后拆分其行,而不是在读取时处理每一行?扫描仪方法hasNextLine()
和nextLine()
在这里可能非常有用。
x 100 -> {"x","100"}
100 -> {" ","100"}
11 -> {" ", "11"} (two spaces)
for (String line : code.split("\\r?\\n"))
HuffCodeToCh.put("" + line.charAt(0), line.substr(2));