s = s.substring(0, Math.min(s.length(), 10));
Math.min
इस तरह का प्रयोग इस मामले में जहां स्ट्रिंग पहले से ही 10
तुलना में कम है में एक अपवाद बचा जाता है।
नोट्स:
ऊपर असली ट्रिमिंग करता है। यदि आप वास्तव में पिछले तीन (!) वर्णों को डॉट्स के साथ प्रतिस्थापित करना चाहते हैं, तो यह अपाचे कॉमन्स StringUtils.abbreviate
का उपयोग करें।
यह गलत तरीके से व्यवहार कर सकता है यदि आपकी स्ट्रिंग में बीएमपी के बाहर यूनिकोड कोडपॉइंट्स हैं; जैसे Emojis। ऐसे समाधान के लिए जो सभी यूनिकोड कोड-पॉइंट्स के लिए सही तरीके से काम करता है, @ sibnick's solution देखें।
1 - एक यूनिकोड कोडपॉइंट है कि विमान 0 (बीएमपी) पर नहीं है String
में एक "किराए की जोड़ी" (यानी दो char
मान) के रूप में प्रतिनिधित्व किया है। इसे अनदेखा करके, हम एक सरोगेट जोड़ी के बीच में 10 से कम कोड अंक, या (बदतर) छंटनी कर सकते हैं। दूसरी तरफ, String.length()
अब यूनिकोड टेक्स्ट की लंबाई का आदर्श उपाय नहीं है, इसलिए इसके आधार पर ट्रिमिंग करना गलत काम हो सकता है।
स्रोत
2011-12-14 05:16:56
[पहले एन अक्षरों तक] [http://stackoverflow.com/questions/1583940/up-to-first-n-characters) के संभावित डुप्लिकेट –