java - 在 Java 中将名称格式从 "Last, First MI."更改为 "First MI. Last"

标签 java format

我正在尝试获取程序从非结构化文本中检索出的名称,并以用户指定的格式“第一个 MI。最后一个”或“最后一个,第一个 MI”显示它们。有任何想法吗?到目前为止,它检查字符串中是否存在逗号。如果是这样,我想切换字符串中单词的顺序并删除逗号,如果有中间首字母并且后面不包含句点,我想添加一个。

if (entity instanceof Entity) {
    // if so, cast it to a variable
    Entity ent = (Entity) entity;

    SName name = ent.getName();
    String nameStr = name.getString();
    String newName = "";

    // Now you have the name to mess with
    // NOW, this is where i need help
    if (choiceStr.equals("First MI. Last")) {
        String formattedName = WordUtils
                .capitalizeFully(nameStr);
        for (int i = 0; i < formattedName.length(); i++) {

            if (formattedName.charAt(i) != ',') {
                newName += formattedName.charAt(i);
            }
        }
    }
    name.setString(newName);
    network.updateConcept(ent);

最佳答案

使用正则表达式和String.replaceAll:

"Obama, Barack H.".replace("(\\w+), (\\w+) (\\w\\.)", "$2 $3 $1")

结果是巴拉克·H·奥巴马

关于java - 在 Java 中将名称格式从 "Last, First MI."更改为 "First MI. Last",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10544197/

相关文章:

java - 如何强制用户提交继承自基类的类?

java - 从 JSON 读取字段到 POJO 时获取空指针

java - Selenium 无法识别弹出窗口上的对象

python - 从格式化字符串内部切片字符串给出 'TypeError: string indices must be integers'

添加 xhtml 时浏览器中的 xml 格式

python - Matplotlib colorbar 使用科学记数法时的刻度格式

java - 如何将 UTC 日期时间转换并格式化为本地时间

java - 让2个变量等于一个函数,var 1自动将值更改为var2

Perl - 查找、格式化和替换文件中的字符串

php - 将时间戳 DATE 重新转换回原始格式(编辑时)PHP MySQL