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

时间:2018-08-24 13:36:57

标签: 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

首先需要反转整个字符串,然后必须反转结果字符串

2 个答案:

答案 0 :(得分:1)

一种直接的方法是在空间上分割输入字符串,然后向后迭代,从反转第一个单词开始,反转所有其他单个单词。

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

Demo

答案 1 :(得分:1)

解决问题:

  1. 通过将字符串除以“”从字符串创建数组。
  2. 反转数组。
  3. 迭代反转数组并反转数组中的每个第二个元素。
  4. 打印数组。