Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 反转字符串,第一个需要反转,第二个需要按原样打印_Java_String - Fatal编程技术网

Java 反转字符串,第一个需要反转,第二个需要按原样打印

Java 反转字符串,第一个需要反转,第二个需要按原样打印,java,string,Java,String,这个问题最近在采访中被问到,既然我无法调试,有人能告诉我解决方案吗 public static void main(String[] args) { i could not able to do it } input: hello bro how are you output: uoy are woh bro olleh input: fire exit output: tixe fire 首先整个字符串需要反转,然后结果字符串需要反转一种简单的方法是在空间上拆分输入字符串,然

这个问题最近在采访中被问到,既然我无法调试,有人能告诉我解决方案吗

public static void main(String[] args) 
{
i could not able to do it
}

input:  hello bro how are you  
output: uoy are woh bro olleh

input: fire exit  
output: tixe fire

首先整个字符串需要反转,然后结果字符串需要反转一种简单的方法是在空间上拆分输入字符串,然后向后迭代,每隔一个单词反转一次,从反转第一个单词开始

String input = "hello bro how are you";
String[] parts = input.split(" ");
StringBuilder sb = new StringBuilder();

for (int i=0; i < parts.length; ++i) {
    StringBuilder rev = new StringBuilder(parts[parts.length - i - 1]);
    if (i > 0) sb.append(" ");
    sb.append(i % 2 == 0 ? rev.reverse() : rev);
}

System.out.println(sb.toString());

uoy are woh bro olleh
String input=“你好,兄弟,你好”;
String[]parts=input.split(“”);
StringBuilder sb=新的StringBuilder();
对于(int i=0;i0)某人加上(“”);
sb.append(i%2==0?rev.reverse():rev);
}
System.out.println(sb.toString());
你是我的兄弟奥利

一种简单的方法是在空格上拆分输入字符串,然后向后迭代,从反转第一个单词开始,每隔一个单词反转一次

String input = "hello bro how are you";
String[] parts = input.split(" ");
StringBuilder sb = new StringBuilder();

for (int i=0; i < parts.length; ++i) {
    StringBuilder rev = new StringBuilder(parts[parts.length - i - 1]);
    if (i > 0) sb.append(" ");
    sb.append(i % 2 == 0 ? rev.reverse() : rev);
}

System.out.println(sb.toString());

uoy are woh bro olleh
String input=“你好,兄弟,你好”;
String[]parts=input.split(“”);
StringBuilder sb=新的StringBuilder();
对于(int i=0;i0)某人加上(“”);
sb.append(i%2==0?rev.reverse():rev);
}
System.out.println(sb.toString());
你是我的兄弟奥利
解决问题:

  • 通过将字符串拆分为“”,从字符串创建数组
  • 反转阵列
  • 迭代反转数组,并反转数组中的每2个元素
  • 打印数组
  • 解决问题:

  • 通过将字符串拆分为“”,从字符串创建数组
  • 反转阵列
  • 迭代反转数组,并反转数组中的每2个元素
  • 打印数组

  • 输出是什么?这句话每隔一个字就倒转一次吗?我想这就是OP需要的。@Tim在上面的程序中,整个字符串都是reversed@Shiva单词的位置是颠倒的,但不是每个单词都是颠倒的。也许你误解了上面的评论,好吗<代码>消防出口生成
    出口erif
    而不是所需的
    tixe fire
    @Armali您是对的。我通过改变我在单词上循环的方式解决了这个问题。输出是什么?这句话每隔一个字就倒转一次吗?我想这就是OP需要的。@Tim在上面的程序中,整个字符串都是reversed@Shiva单词的位置是颠倒的,但不是每个单词都是颠倒的。也许你误解了上面的评论,好吗<代码>消防出口生成
    出口erif
    而不是所需的
    tixe fire
    @Armali您是对的。我通过改变我在单词上循环的方式解决了这个问题。正如你在答案中看到的,你可能需要更清楚地表达。我想你想问的是“如何颠倒字符串和其他单词的词序?”问题的主体你可以通过使用一些标点符号来改进。正如你在答案中看到的,你可能需要更清楚地表达。我想你想问的是“如何颠倒字符串和其他单词的词序?”你的问题主体可能会通过使用一些标点来改进。