[Java] كيفية تقسيم سلسلة من الفضاء


Answers

على الرغم من أن الإجابة المقبولة جيدة ، فكن على دراية بأنك ستنتهي بسلسلة فارغة فارغة إذا كانت سلسلة الإدخال تبدأ بمسافة بيضاء. على سبيل المثال ، مع:

String str = " Hello I'm your String";
String[] splitStr = str.split("\\s+");

ستكون النتيجة:

splitStr[0] == "";
splitStr[1] == "Hello";
splitStr[2] == "I'm";
splitStr[3] == "Your";
splitStr[4] == "String";

لذلك قد ترغب في تقطيع السلسلة قبل تقسيمها:

String str = " Hello I'm your String";
String[] splitStr = str.trim().split("\\s+");
Question

أحتاج إلى تقسيم سلسلتي عبر الفراغات. لهذا حاولت:

str = "Hello I'm your String";
String[] splited = str.split(" ");

ولكن لا يبدو أن العمل.




إذا كنت لا تريد بطريقة ما استخدام طريقة تقسيم السلسلة ، فيمكنك استخدام فئة StringTokenizer في Java كـ ..

    StringTokenizer tokens = new StringTokenizer("Hello I'm your String", " ");
    String[] splited = new String[tokens.countTokens()];
    int index = 0;
    while(tokens.hasMoreTokens()){
        splited[index] = tokens.nextToken();
        ++index;
    }



بسيطة لسلسلة البعد عن طريق الفضاء

    String CurrentString = "First Second Last";
    String[] separated = CurrentString.split(" ");

    for (int i = 0; i < separated.length; i++) {

         if (i == 0) {
             Log.d("FName ** ", "" + separated[0].trim() + "\n ");
         } else if (i == 1) {
             Log.d("MName ** ", "" + separated[1].trim() + "\n ");
         } else if (i == 2) {
             Log.d("LName ** ", "" + separated[2].trim());
         }
     }






استخدم Stringutils.split() لتقسيم السلسلة بواسطة whites paces. على سبيل المثال ، StringUtils.split("Hello World") "Hello" و "World"؛

من أجل حل الحالة المذكورة نستخدم طريقة الانقسام مثل هذا

String split[]= StringUtils.split("Hello I'm your String");

عندما نطبع صفيف الانقسام سيكون الناتج:

مرحبا

أنا

ك

خيط

للاطلاع على مثال كامل ، راجع هنا






Links