问题描述
我以前写过程序以相反的顺序打印整个字符串,但这个问题要求你颠倒单词并保留它在句子中的原始位置。 示例输入:“真的很黑” 预期输出:“tI si yllaer krad”
我也尝试用 bluej 编写这个程序......如下:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h5 class="formatvalue" style="text-transform:uppercase;">12345.67</h5>
<hr>
<div id="result"></div>
但由于某些未知原因,这根本没有提供任何输出 如果有人能指出我代码中的问题或自己编写这个程序,我将不胜感激。另外,请记住,我只是一个初学者,所以除了与字符串严格相关的函数外,请不要使用任何其他内置函数。
解决方法
public static void main(String[] args) throws IOException {
String str = "It is really dark";
System.out.println(reverseWords(str)); // tI si yllaer krad
}
public static String reverseWords(String str) {
StringBuilder buf = new StringBuilder(str.length());
for (String word : str.split("\\s+")) {
if (buf.length() != 0)
buf.append(' ');
for (int i = word.length() - 1; i >= 0; i--)
buf.append(word.charAt(i));
}
return buf.toString();
}
,
public void disp(String s) {
// you will start from last character,all the way back to first
for (int i = s.length(); i>=0; i++) {
// here you will print out character at the index,right to left
System.out.print(s.charAt(i));
}
}