java - 更改单词顺序 Java

标签 java string

我不知道如何更改给定名称的顺序。

例如:Van-Dame Claud 结果:Claud Dame-Van

我创建了这个方法,但似乎不正确,有什么建议或者更好的方法吗?

  public String NameInvers(){
String Name, Name = null, Name = null, NameFinal;
    int s1 = getName().indexOf(' ');
    int s2 = getName().indexOf('-');
    if(s1 != 0){
       Name1 = getName().substring(0, s1);
    if(s2 != 0)
    {
    Name2 = getName().substring(s1, s2);
    Name3 = getName().substring(s2);
    }
    NameFinal = Name3 + Name2 + Name1;
    }
    else
        NameFinal = getName();

    return NameFinal;
  }

编辑:在我的 Main 方法中,我有很多名字。问题是它说:throw new StringIndexOutOfBoundsException(subLen) 它不会出现。

最佳答案

给你:

public static String reverseName (String name) {

    name = name.trim();

    StringBuilder reversedNameBuilder = new StringBuilder();
    StringBuilder subNameBuilder = new StringBuilder();

    for (int i = 0; i < name.length(); i++) {

        char currentChar = name.charAt(i);

        if (currentChar != ' ' && currentChar != '-') {
            subNameBuilder.append(currentChar);
        } else {
            reversedNameBuilder.insert(0, currentChar + subNameBuilder.toString());
            subNameBuilder.setLength(0);
        }

    }

    return reversedNameBuilder.insert(0, subNameBuilder.toString()).toString();

}

测试:

public static void main(String[] args) {

    printTest("Van-Dame Claud");
    printTest("Victor Hugo");
    printTest("Anna");
    printTest("");

}

private static void printTest(String S) {

    System.out.printf("Reverse name for %s: %s\n", S, reverseName(S));

}

输出:

Reverse name for Van-Dame Claud: Claud Dame-Van
Reverse name for Victor Hugo: Hugo Victor
Reverse name for Anna: Anna
Reverse name for : 

关于java - 更改单词顺序 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30552495/

相关文章:

c - MPI_Bcast 发送字符串

java - 无法读取 JSON : Unexpected end-of-input in field name

c++ - 在 C++ 机制中验证字符串

java - 使用 junit 5 测试预期的异常消息

java - 我有一个 htm 文件,我可以将它读取为 UTF-8 格式的文件而不对该文件做任何操作吗

mysql - REGEXP 使用 MySQL 匹配字符串中的任一关键字

string - 如何从char转换为Platform::String ^(C++/CLI)

Java - 字符串索引越界异常 : 11

java - 无法执行 Grabar : org. hibernate.exception.GenericJDBCException:无法执行语句

java - 在我的应用程序中发送图像消息时遇到困难并遇到错误。短信工作正常