检查换行后字符串是否以整数开头
Checking if a string begins with integer after line breaks
我正在使用 Apache POI 从 .doc 文件中读入,结果,我有一个字符串数组列表,其中包含大量来自原始文档格式的换行符和制表符
我需要检查一个字符串是否包含一个整数作为它的第一个字符。然而,字符串通常如下所示:
现在位置 [3] 处的第一个字符串很好,即使它稍后包含一个整数,但是位置 [4] 处以 \n\r\n5.2
开头的字符串
因此以整数开头,是不可接受的,应该忽略。
但是,我似乎无法找到一种方法来检查这些字符串中的一个是否以整数开头。我试图使用 java 的
替换字符串中的所有 \n 和 \r
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++;
有一次在解析特殊字符后 \\n
是 \n
。因此,如果您希望它是 \n
,则必须使用 \n
,这将是字符 \
和字母 n
。这对于 replaceAll 是正确的。对于需要字符的替换,您甚至必须直接使用 '\n'
。 \r
和 \t
.
相同
但是我更喜欢一个正则表达式。此调用应执行此操作:theString.matches("\s*\d.*");
。 \s
代表任何空白字符 \d
代表任何数字,.
代表任何其他尾随字符。
我正在使用 Apache POI 从 .doc 文件中读入,结果,我有一个字符串数组列表,其中包含大量来自原始文档格式的换行符和制表符
我需要检查一个字符串是否包含一个整数作为它的第一个字符。然而,字符串通常如下所示:
现在位置 [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++;
有一次在解析特殊字符后 \\n
是 \n
。因此,如果您希望它是 \n
,则必须使用 \n
,这将是字符 \
和字母 n
。这对于 replaceAll 是正确的。对于需要字符的替换,您甚至必须直接使用 '\n'
。 \r
和 \t
.
但是我更喜欢一个正则表达式。此调用应执行此操作:theString.matches("\s*\d.*");
。 \s
代表任何空白字符 \d
代表任何数字,.
代表任何其他尾随字符。