字符串操作中的Java word

字符串操作中的Java word,java,string,Java,String,我是Java新手,我想知道如何在字符串中切换单词。在我的程序中,用户将文本输入字符串并保存。程序应将第一个字移动到字符串的末尾。我爱猫恨狗应该改为爱猫恨狗 Scanner in = new Scanner(System.in); System.out.println("Please enter at least one thing you love and one thing you hate using the words hate and love: "); String loveHate

我是Java新手,我想知道如何在字符串中切换单词。在我的程序中,用户将文本输入字符串并保存。程序应将第一个字移动到字符串的末尾。我爱猫恨狗应该改为爱猫恨狗

Scanner in = new Scanner(System.in);
System.out.println("Please enter at least one thing you love and one thing you hate using the words hate and love: ");
String loveHate = in.nextLine();
编辑: 这是我最初的回答,但事后看来,@iccthedral的回答可能是最好的

一种方法是将文本拆分为单词,然后将第一个单词连接到后面的所有单词的末尾

String input = "I love cats and hate dogs";
String[] words = input.split("\\s+");
String firstWord = words[0];
StringBuilder everythingAfterFirstWord = new StringBuilder();
for(int i = 1 ; i < words.length ; i++){
   String word = words[i];
   everythingAfterFirstWord.append(word);
   everythingAfterFirstWord.append(" ");
}
String switched = everythingAfterFirstWord + firstWord;
编辑: 这是我最初的回答,但事后看来,@iccthedral的回答可能是最好的

一种方法是将文本拆分为单词,然后将第一个单词连接到后面的所有单词的末尾

String input = "I love cats and hate dogs";
String[] words = input.split("\\s+");
String firstWord = words[0];
StringBuilder everythingAfterFirstWord = new StringBuilder();
for(int i = 1 ; i < words.length ; i++){
   String word = words[i];
   everythingAfterFirstWord.append(word);
   everythingAfterFirstWord.append(" ");
}
String switched = everythingAfterFirstWord + firstWord;
应该让你开始

一个例子

int spaceIndex = loveHate.indexOf(" "); //index of a first space character
String first = loveHate.substring(0, spaceIndex);
String rest = loveHate.substring(spaceIndex + 1); 

String reversed = rest + " " + first; 
应该让你开始

一个例子

int spaceIndex = loveHate.indexOf(" "); //index of a first space character
String first = loveHate.substring(0, spaceIndex);
String rest = loveHate.substring(spaceIndex + 1); 

String reversed = rest + " " + first; 

可以使用以下正则表达式将第一个单词交换到结尾:

loveHate.replaceAll("(\\w+)(.*)", "$2 $1");

可以使用以下正则表达式将第一个单词交换到结尾:

loveHate.replaceAll("(\\w+)(.*)", "$2 $1");
输出:我爱你


输出:love you i

您可以将字符串拆分为一个空格分隔符,然后将数组中的第一个元素放到末尾。您可以将字符串拆分为一个空格分隔符,然后将数组中的第一个元素放到末尾。+1对于这个简单的情况,正则表达式比两个子字符串调用的效率要低,效率过高。我相信剩下的应该是:loveHate.substringspaceIndex+1;因为我认为他不想要第一个单词和第二个单词之间的空格。+1对于这个简单的例子,正则表达式比两个子字符串调用更具杀伤力,效率更低。我相信剩下的应该是:loveHate.substringspaceIndex+1;因为我认为他不想要第一个和第二个单词之间的空格。