في Java كيف يمكنك العنوان حالة سلسلة مع الحفاظ على بعض الاختصارات الشائعة

StackOverflow https://stackoverflow.com/questions/1654066

  •  11-09-2019
  •  | 
  •  

سؤال

هناك العديد من الطرق ل حالة العنوان في جافا.

ولكن كيف يمكنك منع بعض الاختصارات المشتركة من تحويلها. علي سبيل المثال؛

System.out.println(makeProper("JAMES A SWEET");
System.out.println(makeProper("123 MAIN ST SW");

James A Sweet
123 Main St Sw

يجب أن تظل SW كبيرة لأنها اختصار إلى الجنوب الغربي.

هل كانت مفيدة؟

المحلول

تحتاج إلى نوع من القاموس الذي يحتوي على كلمات لا ينبغي أن تكون نسمة. يمكنك استخدام HashSet من أجل هذا. شيء على طول هذه الخطوط:

Set<String> whiteList = new HashSet<String>();
whiteList.add("SW");
whiteList.add("NW");
// ...
for (String word : phrase.split()) {
    if (!whiteList.contains(word)) {
        makeProper(word);
    }
}

نصائح أخرى

لا توجد طريقة قياسية للقيام بهذا الشيء.

يمكنك التوصل إلى طريقتك الخاصة ومجموعة من الاختصارات التي لا تريدها "تصحيح" واستبعادها يفعل من التحول

الطريقة الوحيدة التي استطيع رؤيتها هي:

1. قم بتقسيم نص الإدخال الخاص بك إلى كلمات 2. اكتشاف من خلال الكلمات 2.A إذا كان Word اختصار ثم 2.A.1 لا تفعل شيئا أو تحويله إلى أحرف كبيرة، ومهما كان مطلوبا 2.B خلاف ذلك 2.B.1 مكالمة [1] أو [الاستفادة) [2

مكلفة أو الاستفادة
من الواضح أن عليك إنشاء طريقة ستقرر ما إذا كانت الكلمة اختصار أم لا :) ماذا عن الحفاظ على اختصار المعرفة في ملف، وقراءةها.

اباتشي المشاع - لانج يحتوي على Wordutils.citalize الذي استخدمته في الاستفادة من السلاسل دون مشكلة. آمل أن ينقذك الوقت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top