字符串拆分器将fullname转换为带有Initials的逻辑字符串

时间:2013-04-22 14:11:46

标签: java

您好我正在寻找一个将长全名字符串拆分为逻辑字符串的函数。 为了更清楚,我举了一个例子:

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)+“。”;                 打破;

}

提前致谢。

岸堤

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