我有一個非常惱人的問題,我無法修復:(搜索字符串只是包含「 n」個
private static final String NEW_LINE = System.getProperty("line.separator");
text = "\n";
int count = text.split(NEW_LINE).length;
count
保持返回0,當它應該返回1 我想在字符串中的換行符其原因\n
心不是實際上是一個字符串,但一個換行符。
是有辦法解決這一問題?
我有一個非常惱人的問題,我無法修復:(搜索字符串只是包含「 n」個
private static final String NEW_LINE = System.getProperty("line.separator");
text = "\n";
int count = text.split(NEW_LINE).length;
count
保持返回0,當它應該返回1 我想在字符串中的換行符其原因\n
心不是實際上是一個字符串,但一個換行符。
是有辦法解決這一問題?
拆分使用正則表達式。使用「\\ N」的字符串分割。
這是因爲String.split()放棄了結果數組中所有尾隨的空字符串。
如果/ n不是分隔符,count只會是1。 在下面: -
private static final String COLON = ":";
public static void main(String[] args)
{
String text = ":";
int count = text.split(COLON).length;
System.out.println("len = " + count);
}
計數也將爲零。
分割丟棄尾隨的空字符串。
例如[x] [] []變爲[x],但[x] [] [] [y]保持原樣。
正如彼得J說分裂扔掉尾隨空弦。
您可以使用另一個方法public String [] split(String regex,int limit),其限制設置爲-1。這將導致該模式按需要應用多次,結果數組可以是任意長度,它不會丟棄尾隨的空字符串。
運行您發佈的代碼總是會爲我返回1。這是因爲它總是返回字符串[] = { 「\ n」}
我改變了你對NEW_LINE 「\\ N」,它將返回長度爲2 字符串[] = { 「」, 「」}您將在'\ n'之前獲得空字符串,並在'\ n'之後獲得空字符串。
public class splitTest {
public static void main(String[] args) {
String text = "\n";
int count = text.split("\\n", -1).length;
System.out.println("count = " + count);
}
}
你想要數newLine字符嗎? – Fred
運行該代碼給我計數1. – Averroes
您的行分隔符可能不是\ n。您的測試可能不起作用,但它可以在真實文件上工作。 – toto2