[英]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.