在java中拆分字符串后,如何重新排列它?

在java中拆分字符串后,如何重新排列它?,java,string,Java,String,我想重新排列放置在lastname:firstname,middlename中的名称,以便o/p位于第一个中间位置和最后一个位置。我有它,所以它在分号逗号和空格处分开 这就是我到目前为止所做的: Scanner n = new Scanner(System.in); System.out.println("Welcome to the Name Rearranging Program"); System.out.println(" Enter a name in our format:");

我想重新排列放置在
lastname:firstname,middlename
中的名称,以便o/p位于第一个中间位置和最后一个位置。我有它,所以它在分号逗号和空格处分开

这就是我到目前为止所做的:

Scanner n = new Scanner(System.in);

System.out.println("Welcome to the Name Rearranging Program");
System.out.println(" Enter a name in our format:");
// format is lastname:firstname,middlename

String name = n.next();

String[] arr = name.split("[:, ]");

for (int i = 0; i < arr.length; ++i) {
    System.out.println(arr[i]);
}
Scanner n=新的扫描仪(System.in);
System.out.println(“欢迎使用名称重新排列程序”);
System.out.println(“以我们的格式输入名称:”);
//格式为lastname:firstname,middlename
字符串名称=n.next();
字符串[]arr=name.split(“[:,]”);
对于(int i=0;i
由于这听起来像是家庭作业或另一种学习练习,这里有一个提示可以帮助您上路。尝试添加以下内容

String arr = name.split(...);
String last = arr[0];
String first = arr[1];
String middle = arr[2];

这应该足以让下一步尽可能直观。

因为这听起来像是家庭作业或其他学习练习,这里有一个提示可以帮助你上路。尝试添加以下内容

String arr = name.split(...);
String last = arr[0];
String first = arr[1];
String middle = arr[2];

这应该足以使下一步尽可能直观。

好吧,我想我会遵循atk的指导,不会完全给出答案,但你也可以使用字符串而不是数组来完成。您可以按照以下思路做一些事情:

int colon = name.indexOf(":");
int comma = name.indexOf(",");
在这里,您只需使用
string.substring(int-beginIndex,int-endIndex)
和上述两个变量,将名称的每个部分分隔成自己的字符串,并按自己的意愿打印出来

此链接讨论子字符串:

好吧,我想我会遵循atk的指导,不会完全给出答案,但你也可以使用字符串而不是数组来完成。您可以按照以下思路做一些事情:

int colon = name.indexOf(":");
int comma = name.indexOf(",");
在这里,您只需使用
string.substring(int-beginIndex,int-endIndex)
和上述两个变量,将名称的每个部分分隔成自己的字符串,并按自己的意愿打印出来

此链接讨论子字符串:

您知道
arr.length
应该是3,那么为什么不单独输出每个名称呢?除了打印一些空格(
System.out.print(“”);
)之外,我看不出这个代码片段有什么问题这应该可以很好地工作……当我这样做的时候,它会输出所有东西,直到它被拆分的地方,所以它不工作。@CommuSoft-不,关键是要将姓氏从第一个位置移动到最后一个位置。它可以工作,它只是没有按我想要的顺序打印-第一个中间位置最后一个你知道
arr.length
应该是3,那么为什么不单独输出每个名称呢?除了打印一些空格(
System.out.print(“”);
),我看不出这个代码片段有什么问题这应该可以很好地工作……当我这样做时,它会输出所有内容,直到它被拆分的位置,所以它不工作。@CommuSoft-不,关键是要将姓氏从第一个位置移动到最后一个位置。它可以工作,它只是不按我想要的顺序打印它-首先是中间,然后是中间,但我需要它在冒号处拆分,然后是逗号,然后是逗号空格?但我需要它在冒号,逗号和空格处分开?