لا تعمل طريقة split () في Java على نقطة (.)



Answers

java.lang.String.split تقول:

تقسيم هذه السلسلة حول التطابقات الخاصة بالتعبير العادي المحدد.

(التشديد لي.)

النقطة هي حرف خاص في صيغة التعبير العادي. استخدم Pattern.quote() على المعلمة لتقسيم () إذا كنت تريد أن يكون الانقسام على نمط سلسلة حرفية:

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

هذا السؤال لديه بالفعل إجابة هنا:

أعددت مقتطفًا بسيطًا من الشفرات لفصل الجزء الخطأ عن تطبيق الويب.

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");
        }
    }
}

لقد اختبرت ذلك أثناء بناء تطبيق ويب JSF. أنا فقط أريد أن أعرف لماذا لا يعمل temp.split(".") في رمز أعلاه. البيان،

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

يعرض أي شيء على وحدة التحكم يعني أنه لا يمر من خلال الحلقة. عندما أقوم بتغيير وسيطة الأسلوب temp.split() لأحرف أخرى ، يعمل بشكل جيد كالمعتاد. ماذا يمكن أن يكون مشكلة؟




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

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

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



محاولة:

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

الطريقة هي:

String[] split(String regex) 

"." هو char محجوز في regex




Related