مقدمة
أعتقد أن الجميع يجب أن يعلموا أنه في برمجة Java ، نحتاج أحيانًا إلى تقسيم سلسلة وفقًا لحرف محدد أو خطاب ، وما إلى ذلك. كنقطة قطع ، حتى نتمكن من استخدام جزء من هذه السلسلة أو حفظ جميع المحتوى المعترض في صفيف. ستشاركك المقالة التالية طريقتان للتجزئة. دعونا نلقي نظرة معا.
1. طريقة الانقسام () من java.lang.string ، JDK 1.4 أو أحدث
public String[] split(String regex,int limit)
نموذج الرمز
STRINGSPLIT STRINGSPLIT {public static void main (string [] args) {String sourcestr = "1،2،3،4،5" ؛ String [] sourcestrarray = sourcestr.split ("،") ؛ لـ (int i = 0 ؛ i <sourcestrarray.length ؛ i ++) {system.out.println (sourcestrarray [i]) ؛ } // تقسيم ما يصل إلى 3 سلاسل int maxspleit = 3 ؛ sourcestrarray = sourcestr.split ("،" ، maxSplit) ؛ لـ (int i = 0 ؛ i <sourcestrarray.length ؛ i ++) {system.out.println (sourcestrarray [i]) ؛ }}} نتيجة الإخراج:
12345123،4،5
يقوم تطبيق Split مباشرة باستدعاء طريقة الانقسام لفئة المطابقة. عند استخدام طريقة String.split لتحديد السلاسل ، إذا كان المحدد يستخدم بعض الأحرف الخاصة ، فقد لا يحصل على النتائج التي توقعناها.
يجب الهروب من الشخصيات ذات المعاني الخاصة في التعبيرات العادية عندما نستخدمها. مثال:
STRINGSPLIT STRINGSPLIT {public static void main (string [] args) {String value = "192.168.128.33" ؛ // لاحظ أنه يجب عليك إضافة // ، إما عدم الخروج ، نعم الأسماء [] لـ (int i = 0 ؛ i <names.length ؛ i ++) {system.out.println (names [i]) ؛ }}}ملخص فاصل الانقسام
1. يجب إضافة الشخصيات "|" ، "*" ، "+" مع الشخصيات التي هربت ، ويتم إضافة "//" أمامها.
2. إذا كان "/" ، فيجب كتابته باسم "////".
3. إذا كان هناك عدة محددات في سلسلة ، يمكنك استخدام "|" كما الواصلة.
على سبيل المثال: String str = "Java string-split#test" ، يمكنك استخدام Str.split(" |-|#") لفصل كل سلسلة. هذا يقسم السلسلة إلى 3 أسطوانات فردية.
2. Java.Util.Tokenizer JDK 1.0 أو لاحقًا
StringTokenizer
تتيح فئة StringTokenizer للتطبيقات تقسيم الأوتار إلى الرموز. StringTokenizer هو فئة قديمة يتم الحفاظ عليها لأسباب توافق (على الرغم من أنه لا يتم تشجيعها في رمز جديد). يوصى بأن يستخدم كل من يبحثون عن هذه الميزة طريقة تقسيم سلسلة أو حزمة java.util.regex.
مثال رمز
STRINGSPLIT STRINGSPLIT {public static void main (string [] args) {String ip = "192.168.128.33" ؛ stringtokenizer token = new StringTokenizer (IP ، ".") ؛ بينما (token.hasmoreElements ()) {system.out.print (token.nextToken ()+"") ؛ }}}ومع ذلك ، من أجل تقسيم السلسلة "192.168..33" ، فإن صفيف السلسلة المرتجعة يحتوي على 3 عناصر فقط ، وسيتم تجاهل السلسلة الفارغة بين الفواصلين. يجب استخدام هذا بحذر.
ومع ذلك ، فإن String.split ( String.split مطابقة مع تعبيرات منتظمة ، لذلك لا يستخدم خوارزمية مطابقة سلسلة KMP) الخوارزميات التي تعبر التسلسل ، مع تعقيد زمني عالي من O (M*n) ، لذلك من حيث الأداء ، يكون من الأفضل. بالنسبة للتطبيقات التي تستخدم تجزئة السلسلة بشكل متكرر ، مثل معالجة بيانات ETL ، يمكن تحسين أداء استخدام StringTokenizer كثيرًا.
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون محتوى هذه المقالة من بعض المساعدة لدراستك أو عملك. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل.