在java中交换数组中元素的位置?

Lam*_*bda 6 java arrays string position switching

好的,所以这是我第一次在这里发帖,所以请耐心等待.

我有一个格式的名称,"Smith, Bob I"我需要切换这个字符串来阅读"Bob I. Smith".关于如何做到这一点的任何想法?

这是我尝试过的一种方式,虽然它确实完成了工作,但它看起来很邋..

public static void main(String[] args) {
        String s = "Smith, Bob I.", r = "";
        String[] names;

        for(int i =0; i < s.length(); i++){
            if(s.indexOf(',') != -1){
                if(s.charAt(i) != ',')
                    r += s.charAt(i);
            }

        }
        names = r.split(" ");
        for(int i = 0; i < names.length; i++){
        }
        System.out.println(names[1] +" " + names[2] + " " + names[0]);


    }
Run Code Online (Sandbox Code Playgroud)

Tho*_*mas 10

如果名称始终如此<last name>, <firstname>,请尝试以下方法:

String name = "Smith, Bob I.".replaceAll( "(.*),\\s+(.*)", "$2 $1" );
Run Code Online (Sandbox Code Playgroud)

这将收集Smith到组1和Bob I.为组2,然后被作为访问$1$2在替换字符串.由于(.*)表达式中的组,整个字符串匹配并将被替换完全替换,替换只是由空格字符交换和分隔的2个组.


Chr*_*bek 5

    String[] names = "Smith, Bob I.".split("[, ]+");
    System.out.println(names[1] + " " + names[2] + " " + names[0]);
Run Code Online (Sandbox Code Playgroud)