أفضل طريقة لتقليم المسافات في سلسلة
سؤال
وكيف يمكنني تقليم المساحات داخل ولم يتبق سوى مسافة واحدة مع الأخذ النظر في الأداء؟
<اقتباس فقرة>Input:
AA BB
Output:
AA BB
Input:
A A
Output:
A A
اقتباس فقرة> المحلول
System.out.println(" AA BB".replaceAll("\\s+", " ").trim());
وإخراج:
AA BB
ملحوظة: وخلافا لبعض الحلول الأخرى هنا، وهذا يحل محل أيضا علامة تبويب واحدة مع مسافة واحدة. إذا لم يكن لديك أي علامات التبويب يمكنك استخدام "{2،}" بدلا من ذلك الذي سيكون أسرع:
System.out.println(" AA BB".replaceAll(" {2,}", " ").trim());
نصائح أخرى
واستبدال اثنين أو أكثر من المساحات "\\s{2,}"
من قبل " "
مسافة واحدة والقيام trim()
بعد ذلك للتخلص من أبرز ومسافات زائدة كما كنت أظهر في المثال 1ST.
output = input.replaceAll("\\s{2,}", " ").trim();
s = s.replaceAll("\\s+", " " ).trim();
و
"Hello a a g g a gag gs gs@".replaceAll( "[ ]+{2}", " ") ).trim();
وهناك الإجابات الصحيحة هنا، منها مثلا:
s = s.replaceAll("\\s+", " " ).trim();
ولكن أعتقد أنه من المهم أيضا اختيار السؤال الصحيح. بدلا من يسأل عن تقليم String
باستخدام التعابير العادية، لماذا لا تسأل فقط عن تقليم String
، وتسمح للناس الإجابة لتظهر لك أفضل استراتيجية؟
قد يكون هناك أيضا طرق أفضل للانهيار المساحات من استخدام تعبير عادي. هناك بالتأكيد <م> البعض م> طرق.