نصائح مفيدة

تقسيم سلسلة جافا بخط جديد

Pin
Send
Share
Send
Send


لدي "004-034556" ، string1 = 004 string2 = 034556 أريد تقسيمه إلى سطرين:

هذا يعني أن السطر الأول سيحتوي على أحرف قبل "-" ، وسيحتوي السطر الثاني على أحرف بعد السلسلة # split () من السلسلة String = "004-034556" ، سلسلة [] parts = string.split ("-") ، سلسلة part1 = parts ، // 004 String part2 = parts ، // 034556 أريد أيضًا التحقق مما إذا كانت هناك سلسلة بها ^ إذا لم يكن الأمر كذلك ، فسوف ألقي استثناء. كيف يمكنني أن أفعل هذا $

مشاركات: 30

فقط استخدم الطريقة المناسبة *.

يرجى ملاحظة أن هذا يستغرق تعبيرًا منتظمًا ، لذا تأكد من حفظ الأحرف الخاصة إذا لزم الأمر.

لذلك ، إذا كنت تريد تقسيم ، على سبيل المثال ، الفترة / نقطة ،. الذي يعني "أي حرف" في تعبير عادي ، استخدم إما شرطة مائلة للخلف ، قسمة ("[.]") لتجنب الحرف الخاص الوحيد Pattern # quote () ، أو نحو ذلك ، أو استخدم فئة حرف الانقسام (Pattern.quote (". ")) لتمثيل حرف الحرف (الحروف) ، مثل أجزاء السلسلة [] = string.split (Pattern.quote (". ")) ، // Split on period. أو استخدام String # يحتوي على () لتجنب السلسلة بأكملها إذا (string.contains ("-")) <// Split it. > آخر <رمي IllegalArgumentException الجديد ("سلسلة" + سلسلة + "لا يحتوي -") ،>.

للتحقق مقدما إذا كانت السلسلة تحتوي على أحرف معينة (أحرف) ، ببساطة استخدم؟ .

يرجى ملاحظة أن هذا لا يقبل regex. للقيام بذلك ، استخدم؟ = بدلاً من ذلك.

إذا كنت ترغب في الحفاظ على حرف الفاصل في الأجزاء الناتجة ، استخدم الجانب الخلفي الإيجابي. إذا كنت تريد أن يكون الحرف المنقسم على الجانب الأيسر ، فاستخدم نظرة إيجابية عن طريق إضافة String string = "004-034556" ، String [] parts = string.split ("(؟ = -)") ، السلسلة part1 = الأجزاء ، / / 004 السلسلة part2 = الأجزاء ، // -034556 المجموعة في القالب.

إذا كنت تريد أن يكون الحرف المنقسم على الجانب الأيمن ، فاستخدم واجهة مظهر إيجابية باستخدام String string = "004-034556-42" ، String [] parts = string.split ("-"، 2) ، السلسلة part1 = parts ، / / 004 السلسلة part2 = أجزاء ، // 034556-42 بادئة المجموعة في القالب.

إذا كنت ترغب في تحديد عدد الأجزاء الناتجة ، يمكنك تحديد الرقم المطلوب كوسيطة ثانية لطريقة (d +) - (d +).

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

نظرًا لإصلاح القالب في هذه الحالة ، يمكن تجميعه مقدمًا وحفظه كعضو ثابت (تم التهيئة في وقت تحميل الفئة في المثال). التعبير العادي:

تشير الأقواس إلى مجموعات الالتقاط ، ويمكن الحصول على سلسلة تطابق هذا الجزء من التعبير العادي بواسطة طريقة Match.group () ، كما هو موضح. تتوافق الرموز d مع رقم عشري واحد ، والرمز + يعني "تطابق واحد أو أكثر من التعبير السابق". "لا يهم حقًا ، لذلك فهو يطابق رمز الإدخال هذا." لاحظ أنك تحتاج إلى مضاعفة الخط المائل العكسي عند كتابة هذا كسلسلة Java. بعض الأمثلة الأخرى:

سيؤدي ذلك إلى تقسيم الخيط إلى قسمين. سيكون العنصر الأول في الصفيف هو الجزء الذي يحتوي على المادة من قبل - والعنصر الثاني في الصفيف سيحتوي على جزء السلسلة بعد -.

إذا كان طول المصفوفة لا يساوي 2 ، فإن السلسلة لم تكن بالتنسيق: split ().

17 إجابة

هذا ينبغي أن تغطي لك:

لا يوجد سوى خطان جديدان (UNIX و Windows) تحتاج إلى القلق بشأنهما.

إذا كنت لا تريد خطوط فارغة:

تستخدم طريقة الانقسام التعبير العادي (التعبيرات العادية). نظرًا لأن Java 8 regex يدعم R ، وهو (مع الوثائق لفئة Pattern):

Linebreak المطابق
R أي تسلسل لكسر يونيكود يعادل u000D u000A | [ u000A u000B u000C u000D u0085 u2028 u2029]

حتى نتمكن من استخدامه لمطابقة:

  • u000D 0A -> r n الزوج
  • u000A -> سطر التغذية ( n)
  • u000B -> جدول السلاسل (لا تخلط بين حرف علامة التبويب ما هو u0009)
  • u000C -> نموذج التغذية ( f)
  • u000D -> حرف النقل ( r)
  • u0085 -> السطر التالي (NEL)
  • u2028 -> خط فاصل
  • u2029 -> فاصل العنصر

كما ترى ، يتم وضع r n في بداية التعبير العادي ، مما يضمن أن التعبير العادي يحاول أولاً مطابقة هذا زوجينوفقط إذا فشل هذا ، فسوف يحاول التوفيق شخصية واحدة فواصل الخط.

لذلك إذا كنت تريد التقسيم إلى خط فاصل ، فاستخدم الانقسام (" R").

مثال على كسر الخط

افترض أن لدينا متغير strMain. يتكون معناه من عدة كلمات مفصولة بفاصلة: "ألفا ، بيتا ، جاما ، دلتا ، سيجما."

اطبع كل كلمة على سطر منفصل وافصل بينها بفواصل. نتيجة لذلك ، حصلنا على خمسة خطوط منفصلة:

لتنفيذ ذلك ، استخدم الأسلوب split (). كحجة ، نمر إلى الانقسام. في حالتنا ، الفاصل هو فاصلة. رمز المثال:

كيفية تقسيم الخيط بمسافة

النظر في الموقف حيث يكون من الضروري فصل الخط بمسافة. نلقي نظرة على المثال أدناه. لدينا سلسلة متغيرة strMain ، تتكون من عدة كلمات: "مرحبًا بك في Guru99".

هذا المنشور هو ترجمة لمقال "كيفية تقسيم سلسلة في جافا: تعلم بالقدوة" ، أعده فريق ودية من مشروع تكنولوجيا الإنترنت

شاهد الفيديو: دورة تصميم و تطوير مواقع الإنترنت Java Script - د 35 - جلب معلومات الملفات (شهر نوفمبر 2020).

Pin
Send
Share
Send
Send