我正在使用Apache POI从.doc文件读入,因此,我有一个包含大量换行符的字符串的arraylist,以及原始文档格式的选项卡
我需要检查一个字符串,从中包含一个整数作为它的第一个字符。但是,字符串通常如下所示:
现在位置[3]的第一个字符串很好,即使它稍后包含一个整数,但位置[4]的字符串以\n\r\n5.2
开头
因此从一个整数开始,是不可接受的,应该被忽略。
但是,我似乎无法找到一种检查其中一个字符串是否以整数开头的方法。我试图用java的
theString.replaceAll("\\\\n","");
theString.replaceAll("\\\\r","");
然而,这似乎失败了,我试图使用正则表达式确定使用子字符串,如果字符串本身以整数开头无效,因为标签和换行符的数量不同。
有没有人为什么我可以确定字符串(在所有换行符和制表符之后)是否以整数开头?
第二个例子:
正在使用的代码:
tempLineBreakRemoval = listoflines.get(x);
tempLineBreakRemoval = tempLineBreakRemoval.replaceAll("\\\n", "");
//Selection Statement to only add to "tempCommentString" if does not start with integer
tempCommentString += listoflines.get(x);
x++;
答案 0 :(得分:0)
解析特殊字符后,\\\\n
为\\n
一次。因此,如果您希望\\n
为\n
字符\
和字母n
,则必须使用'\n'
。这对replaceAll来说是正确的。对于需要角色的替换,您甚至必须直接使用\r
。 \t
和theString.matches("\\s*\\d.*");
相同。
但是我更喜欢单一的正则表达式。此调用应执行此操作:\s
。 \d
代表任何数字的任何空白字符.
,代表任何其他结尾字符的{{1}}。