تقسيم سلسلة باستخدام طريقة الانقسام في Java
< span style = "عائلة الخط:" اريال" , " هيلفيتيكا" ، بلا رقيق ؛" >غالبا ما تستخدم المصفوفات في برامج الكمبيوتر ، ويمكن القول أن جميع البرامج تقريبا تحتوي على صفائف من أنواع مختلفة. الهياكل. أبسط هو هيكل متجاورة منها جميع العمليات باستثناء الإضافة تتم بالتتابع. ال إزالة يتم ذلك باستخدام a الوصول مباشر ولكن على يجب افعل الإزاحة عناصر أخرى.< / span >< br / >< / a>عد الكلمات في قناة حرف الحرف يعني البحث عن حرف "الفضاء". تجعل Java الأمور أسهل بالنسبة لنا وهذا هو المكان الذي نلاحظ فيه ميزة الكائن الموجه ، وهناك وظيفة محدد مسبقا < نمط الامتداد = "اللون: # 660000 ؛" >تقسيم< / سبان>< نمط الامتداد = "اللون: # 660000 ؛" >،< / span> < / b>divide باللغة الإنجليزية.< / span >تأخذ طريقة split < / i> تعبيرا عاديا كمدخلات. يقسم هذا قناة وفقا للتعبير العادي المحدد ويقوم بإرجاع صفيف الذي يحتوي على سلاسل فرعية. إذا كان التعبير لا يطابق قناة يحتوي البحث عن المصفوفة الناتجة على عنصر واحد فقط.< / span >
< نمط الامتداد = "اللون: # 660000 ؛" >
إذا أردنا تقسيم قناة التالى: I.am.a.programmer مفصولة بواسطة النقاط ، يجب أن نكتب الانقسام (< نمط الامتداد = "اللون: أزرق ؛" >"\\." < / span >) وليس (تقسيم (< نمط الامتداد = "اللون: أزرق ؛" >"." < / span >) < نمط الامتداد = "اللون: أحمر ؛" >خطأ < / سبان > ). ببساطة لأننا قلنا أن طريقة الانقسام تأخذ التعبيرات العادية كمدخلات. إذا لم يكن لديك أي معرفة ، فما عليك سوى البحث على الإنترنت. أعطيك الرابط مباشرة: < / span >
التعبيرات العادية في جافا مع regex< / a>< / span >
في مثالنا ، لسنا بحاجة إلى أشياء كبيرة. نريد أن نحسب عدد الكلمات مفصولة بكلمة واحدة" الفضاء" في A قناة من الشخصيات. إنه موجود طريقتان لتحقيق ذلك: < / span >
1- مع تقسيم الدالة< / span>< / h2>تأخذ طريقة split الإدخال إلى السلسلة المراد معالجتها وإخراجها يجب أن تعود عدد الكلمات: < / span >
< span style = "عائلة الخط: " اريال" , " هيلفيتيكا" ، بلا رقيق ؛" >
< / span >< span style = "عائلة الخط: " ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >< نمط الامتداد = "اللون: #a64d79 ؛" >دولي< / سبان> كلمات الأرقام (< نمط الامتداد = "اللون: #a64d79 ؛" >سلسلة < / span > string) < / span >
< / span >< span style = "عائلة الخط: " اريال" , " هيلفيتيكا" ، بلا رقيق ؛" >نعلن لوحة < نمط الامتداد = "اللون: #a64d79 ؛" >سلسلة < / امتداد > [] كلمات ؛ نبسب؛ لتخزين السلاسل الفرعية. يتلقى الأخير السلاسل الفرعية التي تم العثور عليها بواسطة split:
< / span >< span style = "عائلة الخط: " ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >الكلمات = string.split (نمط < span = "اللون: أزرق ؛" >" "< / الامتداد >) ؛ < / span >
< span style = "عائلة الخط: " اريال" , " هيلفيتيكا" ، بلا رقيق ؛" >
< / span >< span style = "عائلة الخط: " اريال" , " هيلفيتيكا" ، بلا رقيق ؛" >أخيرا ، قم بإرجاع طول كلمات الجدول: < / span >
< / span >< span style = "عائلة الخط: " ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >< نمط الامتداد = "اللون: #a64d79 ؛" >العودة < / سبان > موتس ؛ < / span >
< h2 >2- بدون نمط الانقسام < / span >< / h2 >< span = "عائلة الخط: " اريال" , " هيلفيتيكا" ، بلا رقيق ؛" >تبدو هذه الطريقة أطول ولكنها ليست كذلك ضروري نظرا لأن Java لديها بالفعل وظيفة Split المحددة مسبقا. هذه ميزة إضافية لأولئك الذين يريد قطار. < / span >
< span style = "عائلة الخط: " اريال" , " هيلفيتيكا" ، بلا رقيق ؛" >
نعلن عداد كلمات وحرف.
< / span >< span style = "عائلة الخط: " ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >< نمط الامتداد = "اللون: #a64d79 ؛" >انتل&نبسب; < / الامتداد > n = 0 ؛ < / span >
< span style = "عائلة الخط: " ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >< نمط الامتداد = "اللون: #a64d79 ؛" >شار < / span > c ؛ < / span >
ثم نقرأ جميع أحرف قناة ونختبر ما إذا كان أحدهم مسافة بدون حساب الفراغات في بداية الجملة ونهايتها. إذا كانت الإجابة بنعم ، فقم بزيادة counter.< / span >
< نمط الامتداد = "اللون: #a64d79 ؛" >من أجل< / سبان> (< نمط الامتداد = "اللون: #a64d79 ؛" >انتل&نبسب; < / span>i = 0 ؛ أنا < طول السلسلة (); i++){
نبسب؛ c = chain.charAt(i); < / span >
< span style = "عائلة الخط: " ساعي جديد" , " ساعي" ، حافلة صغيرة؛" > نبسب؛ نبسب؛ < نمط الامتداد = "اللون: #a64d79 ؛" >إذا< / سبان> (i!=0 & & i!=string.length () -1) < / span >
نبسب؛ نبسب؛ نبسب؛ < نمط الامتداد = "اللون: #a64d79 ؛" >إذا< / سبان> (ج == < نمط الامتداد = "اللون: أزرق ؛" > '< / span >) < / span >
< / سبان> نبسب؛ ن ++ ؛ < / span >
< span style = "عائلة الخط: " ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >}< / span >
أخيرا ، العداد يساوي 0 إذا كان قناة الإدخال فارغ ويساوي 1 إذا التعبير لا يتوافق مع قناة searched.
إذا كان متفوقة إلى 1 يعني أن هناك مسافة واحدة على الأقل.< / span >< br / >
< / span >< span style = "عائلة الخط: " ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >< نمط الامتداد = "اللون: #a64d79 ؛" >إذاسبان>(ن> 1) < / span >
< span style = "عائلة الخط: " ساعي جديد" , " ساعي" ، حافلة صغيرة؛" > ن ++ ؛ < / span >
< h2 >مثال< / span >< / b >< / h2 >" أنا مبرمج "< / span>
نضيف 1 لأننا نحسب المسافات بينهما. الكلمات < نمط الامتداد = "اللون: #274e13 ؛" > (بين كل كلمتين مسافة).
public class WordNumberString {
//مع تقسيم الدالة المحددة مسبقا
كلمات الأرقام الثابتة int (سلسلة سلسلة){
int n=0;
سلسلة [] الكلمات ؛
//split يقسم السلسلة إلى مجموعة من الكلمات
// إذا كانت هناك مسافة ويضعها في صفيف
words = string.split(" ");
إرجاع الكلمات.الطول;
}
//بدون تقسيم الدالة المحددة مسبقا
int ثابت nombremots_naive(سلسلة سلسلة){
int n=0;
char c ؛
// تصفح السلسلة بأكملها
for (int i = 0 ؛ i < string.length () ؛ i ++) {
// حرف حسب الحرف
c = string.charAt(i);
//تجنب عد المسافات
//في البداية والنهاية
//مثال: "أنا مبرمج"
// إذا أزلنا هذا الاختبار ، فسيكون عدد الكلمات
// 6 على الرغم من أن لدينا 4 كلمات.
if (i!=0 & & i!=string.length () -1)
if (c == ')
n ++ ؛
}
// إذا لم تكن السلسلة فارغة
// نضيف 1 لأننا
// نحسب المسافات بين
// الكلمات ، أي إذا كان لدينا 3 مسافات
// فسيكون لدينا 4 كلمات
if (n> 1)
n ++ ؛
إرجاع n ؛
}
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
سلسلة سلسلة = "أنا مبرمج" ؛
System.out.println (nombremots_naive (سلسلة)) ؛
}
}
< / قبل>
//مع تقسيم الدالة المحددة مسبقا
كلمات الأرقام الثابتة int (سلسلة سلسلة){
int n=0;
سلسلة [] الكلمات ؛
//split يقسم السلسلة إلى مجموعة من الكلمات
// إذا كانت هناك مسافة ويضعها في صفيف
words = string.split(" ");
إرجاع الكلمات.الطول;
}
//بدون تقسيم الدالة المحددة مسبقا
int ثابت nombremots_naive(سلسلة سلسلة){
int n=0;
char c ؛
// تصفح السلسلة بأكملها
for (int i = 0 ؛ i < string.length () ؛ i ++) {
// حرف حسب الحرف
c = string.charAt(i);
//تجنب عد المسافات
//في البداية والنهاية
//مثال: "أنا مبرمج"
// إذا أزلنا هذا الاختبار ، فسيكون عدد الكلمات
// 6 على الرغم من أن لدينا 4 كلمات.
if (i!=0 & & i!=string.length () -1)
if (c == ')
n ++ ؛
}
// إذا لم تكن السلسلة فارغة
// نضيف 1 لأننا
// نحسب المسافات بين
// الكلمات ، أي إذا كان لدينا 3 مسافات
// فسيكون لدينا 4 كلمات
if (n> 1)
n ++ ؛
إرجاع n ؛
}
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
سلسلة سلسلة = "أنا مبرمج" ؛
System.out.println (nombremots_naive (سلسلة)) ؛
}
}
< / قبل>