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

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

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

最佳答案

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

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

关于java - 反转字符串,第一个需要反转,第二个需要按原样打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52005696/

相关文章:

memory-leaks - 将 Jmap 与 Jre 一起使用

java - AsyncTask在doInBackground中止

python - 如何向文件中的每一行添加一个字符串?

c# - 使用 spring.net 创建字符串对象

python - 如果字符串与列表名称匹配,则将数字附加到列表

ios - Swift indexpath.row 提取单个字符串

javascript - JS 正则表达式仅适用于第一个字母,但如果单词只有两个字母,则保持 AND 数字不变

java - 适用于java中大文本存储和计数的表

java - 类参数缺少最后的引号

java - 未处理的事件循环异常 Eclipse