Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.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 从名称和姓氏生成字符串_Java_String_Random - Fatal编程技术网

Java 从名称和姓氏生成字符串

Java 从名称和姓氏生成字符串,java,string,random,Java,String,Random,我需要从名字和姓氏生成字符串。详细说明:生成的字符串长度不能超过11 对于字符串“Leo Messi”,我可以直接生成“Leo Messi”,但是 对于长度超过11的“克里斯蒂亚诺·罗纳尔多”,我应该生成类似“C·罗纳尔多”、“克里斯蒂亚诺·R” 另一个例子是“迭戈·阿曼多·马拉多纳”,我可以生成“D·马拉多纳”,“A·马拉多纳”,“迭戈·A.M.”等等 我必须找到一个好的算法来生成这种长度不超过11的字符串。你的意见是什么。是否有任何库可以用于此目的?如果我是你,我会使用一些简单的If语句来设

我需要从名字和姓氏生成字符串。详细说明:生成的字符串长度不能超过11

对于字符串“Leo Messi”,我可以直接生成“Leo Messi”,但是

对于长度超过11的“克里斯蒂亚诺·罗纳尔多”,我应该生成类似“C·罗纳尔多”、“克里斯蒂亚诺·R”

另一个例子是“迭戈·阿曼多·马拉多纳”,我可以生成“D·马拉多纳”,“A·马拉多纳”,“迭戈·A.M.”等等


我必须找到一个好的算法来生成这种长度不超过11的字符串。你的意见是什么。是否有任何库可以用于此目的?

如果我是你,我会使用一些简单的If语句来设置此库

一些伪代码:

如果整个字符串少于11个字符,请保持原样并按原样打印

如果这不起作用,请查看是否可以在少于11个字符内打印出名字、空格和姓氏缩写。(类似于“克里斯蒂亚诺R.”)

如果这不起作用,请查看是否可以在不到11个字符的范围内打印缩写的名字、空格和姓氏(类似于“C.罗纳尔多”)

否则,缩写两个名称(“C.R.”)

显然,中间名不起作用,但你明白我的观点,如何设置它


至于实际的编码,我会让你从中得到乐趣,但是“字符串”。子字符串(x,y)是你可能会用到的东西。

可以使用一个简单的算法


如果全名超过11个字符,则获取最短的名称,并检查其字符是否较少,以允许您使用其他名称的首字母缩写,否则将使用所有名称的首字母缩写

是否可以有重复的名称?用户如何输入其名称?如果你正在使用GUI,你能弹出一条错误消息,说用姓氏或其他什么来删减他们的名字吗?@jit你意识到我在试图让你添加一些细节,这样人们会真正回答你的问题,并阻止它关闭,对吗?仅供参考,对于StackOverflow来说,图书馆的建议是离题的,而且范围太广。如果你没有任何规则,那么一种方法和另一种方法一样好。只需截断。你的问题是,每个文化都可能在不同的位置有名称最重要的部分。将给定的“Abdur Rahman”改为“Abdur R.”会使名称变得毫无意义。但是对于像“威廉·詹姆斯”这样的英文名字来说,把它改成“威廉·J”是完全合适的。要做到这一点,不仅仅是小事,我怀疑是否有一套规则不能为某个人的名字做出适当的选择。嗨,丹尼尔。我能够写下你提到的所有事情,但正如我在进一步的评论中所说的那样;如果有这样的东西,我想首先使用它,所以如果没有这样的库,我会按照你说的做。好吧,在这种情况下,我脑子里想不出什么,但是使用内置方法等不应该太密集。这是家庭作业吗?如果是这样的话,我假设你的导师希望你使用本地的东西。祝你好运