您好我正在寻找一个将长全名字符串拆分为逻辑字符串的函数。 为了更清楚,我举了一个例子:
String Name= "Jorge Peter Wagh";
如果我调用下面的函数:
splitedName = getSplitedName("LongSting", maxCharLength);
情景1:
String finalName = getSplitedName("Name", 6);
然后结果(finalName)应为:Jorge
情景2:
String finalName = getSplitedName("Name", 11);// Editing, minor correction
然后结果(finalName)应为:Jorge P. W.
场景3:
String finalName = getSplitedName("Name", 15); // Editing, minor correction
然后结果(finalName)应为:Jorge Peter W.
任何人都可以帮助我。确实会得到您的帮助。
EDITIED:
在Dan的代码中,我在for循环中添加了一些额外的行来处理maxlength小于5的条件:
if(i == 0&&(maxCharLength< splitted [i] .length())&&(maxCharLength> 1)){
finalName + = splitted [i] .substring(0,1)+“。”; 打破;
}
提前致谢。
岸堤
答案 0 :(得分:0)
我通常不会为他们做人的功课,但我很无聊。
String getSplitedName(String s, int len)
{
if (len >= s.length())
return s;
String s2 = s.substring(0, len + 1);
int index = s2.lastIndexOf(" ");
if (index == -1)
return "";
if (index < s2.length() - 3)
return s2.substring(0, index + 2) + ".";
return s2.substring(0, index);
}
有关:
String name = "Jorge Peter Wagh";
System.out.println(getSplitedName(name, 6));
System.out.println(getSplitedName(name, 10));
System.out.println(getSplitedName(name, 12));
System.out.println(getSplitedName(name, 15));
System.out.println(getSplitedName(name, 16));
打印:
Jorge
Jorge P.
Jorge Peter
Jorge Peter W.
Jorge Peter Wagh