gir*_*iri 13 java string reverse
谁能告诉我如何编写Java程序来反转给定的句子?
例如,如果输入是:
"这是一个面试问题"
输出必须是:
"问题采访是这个"
Ode*_*ded 24
您将字符串拆分为空格,然后向后迭代以组合反转句子.
String[] words = "This is interview question".split(" ");
String rev = "";
for(int i = words.length - 1; i >= 0 ; i--)
{
rev += words[i] + " ";
}
// rev = "question interview is This "
// can also use StringBuilder:
StringBuilder revb = new StringBuilder();
for(int i = words.length - 1; i >= 0 ; i--)
{
revb.append(words[i]);
revb.append(" ");
}
// revb.toString() = "question interview is This "
Run Code Online (Sandbox Code Playgroud)
Boz*_*zho 23
String[] words = sentence.split(" ");
String[] reversedWords = ArrayUtils.reverse(words);
String reversedSentence = StringUtils.join(reversedWords, " ");
Run Code Online (Sandbox Code Playgroud)
(使用ArrayUtils和StringUtils来自commons-lang,但这些是简单的方法来编写 - 只需几个循环)
pol*_*nts 19
只是与众不同:一种递归的解决方案.不添加任何额外的空格.
public static String reverse(String s) {
int k = s.indexOf(" ");
return k == -1 ? s : reverse(s.substring(k + 1)) + " " + s.substring(0, k);
}
System.out.println("[" + reverse("This is interview question") + "]");
// prints "[question interview is This]"
Run Code Online (Sandbox Code Playgroud)
我也会split通过使用改进解决方案\b(这很明显!).
String[] parts = "Word boundary is better than space".split("\\b");
StringBuilder sb = new StringBuilder();
for (int i = parts.length; i --> 0 ;) {
sb.append(parts[i]);
}
System.out.println("[" + sb.toString() + "]");
// prints "[space than better is boundary Word]"
Run Code Online (Sandbox Code Playgroud)
只需将空格字符拆分为字符串数组,然后以相反的顺序循环遍历数组并构造输出字符串.
String input = "This is interview question";
String output = "";
String[] array = input.split(" ");
for(int i = array.length-1; i >= 0; i--)
{
output += array[i];
if (i != 0) { output += " "; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66258 次 |
| 最近记录: |