อะไรรูปแบบ regex ฉันจะต้องส่งผ่านไปยัง   java.lang.String.split()  แยกสตริงเป็น array ของสตริงโดยใช้ตัวอักษรทั้งหมดช่องว่าง (เป็น' ', '\t', '\n'ฯลฯ ) เป็นตัวคั่น?
อะไรรูปแบบ regex ฉันจะต้องส่งผ่านไปยัง   java.lang.String.split()  แยกสตริงเป็น array ของสตริงโดยใช้ตัวอักษรทั้งหมดช่องว่าง (เป็น' ', '\t', '\n'ฯลฯ ) เป็นตัวคั่น?
คำตอบ:
บางสิ่งบางอย่างในสายของ
myString.split("\\s+");กลุ่มนี้มีช่องว่างสีขาวทั้งหมดเป็นตัวคั่น
ดังนั้นถ้าฉันมีสตริง:
"Hello[space][tab]World"นี้ควรผลผลิตสตริง"Hello"และ"World"และงดช่องว่างระหว่างและ[space][tab]
ในฐานะที่เป็น VonC ชี้ให้เห็นเครื่องหมายควรจะหนีเพราะ Java แรกจะพยายามที่จะหลบหนีสตริงอักขระพิเศษและส่งที่สามารถแยกวิเคราะห์ สิ่งที่คุณต้องการคือที่แท้จริงซึ่งหมายความว่าคุณจะต้องผ่าน"\s" "\\s"มันอาจทำให้สับสนเล็กน้อย
เทียบเท่ากับ\\s[ \\t\\n\\x0B\\f\\r]
trim()ก่อน: trim().split("\\s++")- มิฉะนั้นเช่นแยก `abc 'จะปล่อยสองสตริงว่างก่อน
                    "\\\\s"?
                    ในภาษาถิ่น regex ส่วนใหญ่มีชุดบทสรุปตัวละครที่สะดวกสบายที่คุณสามารถใช้สำหรับสิ่งนี้ - นี่คือสิ่งที่ดีที่ต้องจำ:
\w - จับคู่อักขระคำใด ๆ 
\W - ตรงกับตัวละครที่ไม่ใช่คำพูดใด ๆ 
\s - จับคู่อักขระเว้นวรรคใด ๆ 
\S - จับคู่อะไรก็ได้ยกเว้นอักขระเว้นวรรค 
\d - ตรงกับตัวเลขใด ๆ 
\D - จับคู่อะไรก็ได้ยกเว้นตัวเลข
การค้นหา "Regex Cheatsheets" ควรตอบแทนคุณด้วยบทสรุปที่เป็นประโยชน์มากมาย
ในการทำให้Javascriptทำงานฉันต้องทำสิ่งต่อไปนี้:
myString.split(/\s+/g)"\\ s +" ควรทำเคล็ดลับ
นอกจากนี้คุณอาจมี UniCode ที่ไม่ทำลายพื้นที่ xA0 ...
String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breakingString string = "Ram is going to school";
String[] arrayOfString = string.split("\\s+");Apache Commons Lang มีวิธีการแยกสตริงด้วยอักขระช่องว่างเป็นตัวคั่น:
StringUtils.split("abc def")สิ่งนี้อาจใช้งานง่ายกว่ารูปแบบ regex
เนื่องจากเป็นนิพจน์ทั่วไปและฉันถือว่าคุณไม่ต้องการอักขระที่ไม่ใช่ตัวอักษรและตัวเลขเช่นเครื่องหมายจุลภาคจุด ฯลฯ ที่สามารถล้อมรอบด้วยช่องว่าง (เช่น "หนึ่งสอง" ควรให้ [หนึ่ง] [สอง]) มันควรจะเป็น:
myString.split(/[\s\W]+/)คุณสามารถแยกสตริงตามตัวแบ่งบรรทัดโดยใช้คำสั่งต่อไปนี้:
 String textStr[] = yourString.split("\\r?\\n");คุณสามารถแยกสตริงด้วย Whitespace โดยใช้คำสั่งต่อไปนี้:
String textStr[] = yourString.split("\\s+");String str = "Hello   World";
String res[] = str.split("\\s+");ศึกษารหัสนี้ .. ขอให้โชคดี
    import java.util.*;
class Demo{
    public static void main(String args[]){
        Scanner input = new Scanner(System.in);
        System.out.print("Input String : ");
        String s1 = input.nextLine();   
        String[] tokens = s1.split("[\\s\\xA0]+");      
        System.out.println(tokens.length);      
        for(String s : tokens){
            System.out.println(s);
        } 
    }
}