Java中的split()方法不適用於點(。)



2 Answers

java.lang.String.splitjava.lang.String.split說:

將該字符串拆分為給定正則表達式的匹配。

(強調我的。)

點是正則表達式語法中的特殊字符。 如果希望分割位於文字字符串模式上,請使用參數split()的Pattern.quote()

String[] words = temp.split(Pattern.quote("."));
Question

這個問題在這裡已經有了答案:

我準備了一個簡單的代碼片段,以便將錯誤的部分從我的Web應用程序中分離出來。

public class Main {

    public static void main(String[] args) throws IOException {
        System.out.print("\nEnter a string:->");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String temp = br.readLine();

        String words[] = temp.split(".");

        for (int i = 0; i < words.length; i++) {
            System.out.println(words[i] + "\n");
        }
    }
}

我在構建Web應用程序JSF時測試了它。 我只想知道為什麼在上面的代碼temp.split(".")不起作用。 該聲明,

System.out.println(words[i]+"\n"); 

在控制台上什麼都不顯示意味著它不通過循環。 當我將temp.split()方法的參數更改為其他字符時,它和往常一樣正常工作。 可能是什麼問題?




嘗試:

String words[]=temp.split("\\.");

該方法是:

String[] split(String regex) 

“。” 是正則表達式中的保留字符




    private String temp = "mahesh.hiren.darshan";

    String s_temp[] = temp.split("[.]");

  Log.e("1", ""+s_temp[0]);





Related