Java 如何在颠倒一个单词句子后打印单词之间的空格 publicstaticvoidmain(字符串[]args){ //TODO自动生成的方法存根 String str=“让我们参加LeetCode竞赛”; 反向排列(str); } 私有静态void reverseWords(字符串str){ //TODO自动生成的方法存根 String[]words=str.split(\\s”); 字符串反向=”; 字串=”; ArrayList al=新的ArrayList(); for(int i=0;i=0;j--){ 反向=反向+al.get(i).charAt(j); word=reverse.replaceAll(“…”,“$0”); } } 系统输出打印项次(str); System.out.println(word); }

Java 如何在颠倒一个单词句子后打印单词之间的空格 publicstaticvoidmain(字符串[]args){ //TODO自动生成的方法存根 String str=“让我们参加LeetCode竞赛”; 反向排列(str); } 私有静态void reverseWords(字符串str){ //TODO自动生成的方法存根 String[]words=str.split(\\s”); 字符串反向=”; 字串=”; ArrayList al=新的ArrayList(); for(int i=0;i=0;j--){ 反向=反向+al.get(i).charAt(j); word=reverse.replaceAll(“…”,“$0”); } } 系统输出打印项次(str); System.out.println(word); },java,string,algorithm,data-structures,string-matching,Java,String,Algorithm,Data Structures,String Matching,该代码发出了:“s'teLekatedoCteeLtsetnoc” 但是预期的输出应该被输出:“s'teL ekat edoCteeL tsetnoc”实际上,发布的代码不会产生您声称的输出;它输出“s'te Le ka te do Ct ee Lt se tn oc”。你(出于某种原因)一次颠倒一对字母 有时,最好的方法是尽可能简单易读地编写代码。以下是如何在一行(不太容易理解)中完成此操作: 实际上,发布的代码不会产生您声称的输出;它输出“s'te Le ka te do Ct ee Lt

该代码发出了:“s'teLekatedoCteeLtsetnoc”


但是预期的输出应该被输出:“s'teL ekat edoCteeL tsetnoc”

实际上,发布的代码不会产生您声称的输出;它输出
“s'te Le ka te do Ct ee Lt se tn oc”
。你(出于某种原因)一次颠倒一对字母

有时,最好的方法是尽可能简单易读地编写代码。以下是如何在一行(不太容易理解)中完成此操作:


实际上,发布的代码不会产生您声称的输出;它输出
“s'te Le ka te do Ct ee Lt se tn oc”
。你(出于某种原因)一次颠倒一对字母

有时,最好的方法是尽可能简单易读地编写代码。以下是如何在一行(不太容易理解)中完成此操作:

私有静态void reverseWords(字符串str){
//TODO自动生成的方法存根
String[]words=str.split(\\s”);
字符串反向=”;
int len=单词长度;
对于(int i=0;i
private static void reverseWords(String str){
//TODO自动生成的方法存根
String[]words=str.split(\\s”);
字符串反向=”;
int len=单词长度;
对于(int i=0;i
公共类反向{
公共静态void main(字符串[]args){
String str=“让我们参加LeetCode竞赛”;
反向排列(str);
}
私有静态void reverseWords(字符串str){
char[]charArray=str.toCharArray();
布尔标志=假;
int start=0;
int end=0;
对于(int i=0;i
公共类反向{
公共静态void main(字符串[]args){
String str=“让我们参加LeetCode竞赛”;
反向排列(str);
}
私有静态void reverseWords(字符串str){
char[]charArray=str.toCharArray();
布尔标志=假;
int start=0;
int end=0;
对于(int i=0;i
你的代码没有输出你声称的内容。它输出
你的代码没有输出你声称的内容。它输出
你的代码没有输出你声称的内容。它输出
你声称的内容。我喜欢注释中逐行的内容。我在一些回答中也使用了这个:)我喜欢逐行评论。我在一些回答中也使用了这一点:)
public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str = "Let's take LeetCode contest";
        reverseWords(str);
    }

    private static void reverseWords(String str) {
        // TODO Auto-generated method stub
        String[] words = str.split("\\s");
        String reverse = "";
        String word="";
        ArrayList<String> al = new ArrayList<String>();
        for(int i=0 ; i < words.length;i++){
            al.add(words[i]);
            for(int j=al.get(i).length()-1;j>=0;j--){
                reverse=reverse+al.get(i).charAt(j);
                word= reverse.replaceAll("..", "$0 ");
            }
        }
        System.out.println(str);
        System.out.println(word);
    }
private static void reverseWords(String str) {
    System.out.println(
        Arrays.stream(str.split(" "))       // split into words
        .map(StringBuilder::new)            // use a StringBuilder for each word
        .map(StringBuilder::reverse)        // reverse each word
        .collect(Collectors.joining(" "))); // join em back up with spaces
}
private static void reverseWords(String str) {
    // TODO Auto-generated method stub
    String[] words = str.split("\\s");
    String reverse = "";
    int len = words.length;

    for(int i=0;i<len;i++){
        reverse = reverse+new StringBuilder(words[i]).reverse().toString();
        if(i<len-1){
            reverse = reverse+" ";
        }
    }

    System.out.println(str);
    System.out.println(reverse);
}
public class Reverse {

    public static void main(String[] args) {
        String str = "Let's take LeetCode contest";
        reverseWords(str);
    }

    private static void reverseWords(String str) {
        char[] charArray = str.toCharArray();
        boolean flag = false;
        int start = 0;
        int end = 0;
        for (int i = 0; i < str.length(); i++) {
            if (charArray[i] == ' ' && !flag) {
                flag = true;
                end = i - 1;
                reverseWord(charArray, start, end);
            }
            if (charArray[i] != ' ' && flag) {
                start = i;
                flag = false;
            }
        }
        reverseWord(charArray, start, charArray.length - 1);
        System.out.println(str);
        System.out.println(String.valueOf(charArray));
    }

    private static void reverseWord(char[] ch, int i, int j) {
        while (i < j) {
            char temp = ch[i];
            ch[i] = ch[j];
            ch[j] = temp;
            i++;
            j--;
        }
    }
}