繁体   English   中英

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

[英]Swapping the position of elements within an array in java?

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

我有一个名为"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]);


    }

如果名称始终是<last name>, <firstname> ,请尝试以下操作:

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

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

    String[] names = "Smith, Bob I.".split("[, ]+");
    System.out.println(names[1] + " " + names[2] + " " + names[0]);
final String[] s = "Smith, Bob I.".split(",");
System.out.println(String.format("%s %s", s[1].trim(), s[0]));
String s = "Smith, Bob I.";
String result = s.substring(s.indexOf(" ")).trim() + " "
            + s.substring(0, s.indexOf(","));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM