Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将fullname的字符串拆分为带有首字母的逻辑字符串_Java - Fatal编程技术网

Java 将fullname的字符串拆分为带有首字母的逻辑字符串

Java 将fullname的字符串拆分为带有首字母的逻辑字符串,java,Java,您好,我正在寻找一个功能,分裂成一个逻辑字符串长全名字符串。 为了更清楚地说明这一点,我举了一个例子: String Name= "Jorge Peter Wagh"; 如果我调用如下函数: splitedName = getSplitedName("LongSting", maxCharLength); 场景1: String finalName = getSplitedName("Name", 6); String finalName = getSplitedName("Name",

您好,我正在寻找一个功能,分裂成一个逻辑字符串长全名字符串。 为了更清楚地说明这一点,我举了一个例子:

String Name= "Jorge Peter Wagh";
如果我调用如下函数:

splitedName = getSplitedName("LongSting", maxCharLength);
场景1:

String finalName = getSplitedName("Name", 6);
String finalName = getSplitedName("Name", 11);// Editing, minor correction
String finalName = getSplitedName("Name", 15); // Editing, minor correction
那么结果(最终名称)应该是:
Jorge

场景2:

String finalName = getSplitedName("Name", 6);
String finalName = getSplitedName("Name", 11);// Editing, minor correction
String finalName = getSplitedName("Name", 15); // Editing, minor correction
那么结果(最终名称)应该是:
Jorge p.W.

场景3:

String finalName = getSplitedName("Name", 6);
String finalName = getSplitedName("Name", 11);// Editing, minor correction
String finalName = getSplitedName("Name", 15); // Editing, minor correction
那么结果(最终名称)应该是:
Jorge Peter W.

有人能帮我吗。你的帮助将不胜感激

编辑:

String finalName = getSplitedName("Name", 6);
String finalName = getSplitedName("Name", 11);// Editing, minor correction
String finalName = getSplitedName("Name", 15); // Editing, minor correction
在Dan的代码中,我在for循环中添加了一些额外的行,以处理maxlength小于5的情况:

如果(i==0&(maxCharLength1)){

finalName+=拆分的[i]。子字符串(0,1)+“; 中断

}

提前谢谢


安迪

我通常不为别人做家庭作业,但我很无聊

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);
}
印刷品:

Jorge
Jorge P.
Jorge Peter
Jorge Peter W.
Jorge Peter Wagh

你对“逻辑”的定义是什么?说你希望最大长度为10,但如果你想要16,你只能得到7(第一个例子)或14,这对我来说似乎是不合逻辑的。请告诉我们你已经尝试了什么。是的,合乎逻辑的意思是,你的单词不应该被分成一半或任何不完整的单词,这是没有意义的。比如,如果名字是“彼得·布赫”,马克斯林特是8,那么它就不应该像“彼得·布”那样分裂。它应该是“Peter B”。虽然实际长度有所减少,但它应该是这样的。为什么你要显示
Jorge Peter W.
而不是
Jorge P.Wagh.
?@user2172581:这句话仍然不是完全明确的:“单词不应该被分成两半或任何不完整的没有意义的单词。”像“逻辑”和“有意义”这样的单词“在定义技术系统时,这些规则没有用处,因为它们无法转化为一组清晰、明确的规则。thnx Dukeling。。。然而,根据supersam654的评论,我在我的场景中几乎没有做什么改变