作为输入,我的程序获取包含IP地址的字符串由行分隔符分隔,即每行一个IP地址.要验证我所做的每个地址:
String[] temp;
temp = address.split(System.getProperty("line.separator"));
Run Code Online (Sandbox Code Playgroud)
然后我循环通过字符串数组.
我想知道为什么除了最后一个IP地址之外的所有地址都是无效的.我发现它们看起来像10.1.1.1 ^ M.
有没有办法告诉java.lang.String.split在将令牌放入数组之前删除分隔符?或者我还有其他选择吗?对不起,我不是Java忍者,所以我想在开始谷歌搜索几个小时之前我会问你们.
谢谢托马斯
问题是文件中的分隔符是"\r\n",但值System.getProperty("line.separator")是"\n".这意味着"\r"不将其视为分隔符的一部分.
你为什么不使用,address.split("\\s+")因为有效的 IP地址永远不会包含空格?
预定义的字符类
. Any character (may or may not match line terminators)
\d A digit: [0-9]
\D A non-digit: [^0-9]
\s A whitespace character: [ \t\n\x0B\f\r]
\S A non-whitespace character: [^\s]
\w A word character: [a-zA-Z_0-9]
\W A non-word character: [^\w]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
383 次 |
| 最近记录: |