我正在尝试编写一个java程序,它可以反转句子中的每个单词。例如,如果句子是“Hello World.Hello Java”,输出应该是“olleH dlroW.olleH avaJ”。我可以反转,但我得到的输出是“olleH.dlroW olleH.avaJ”,即使是圆点也会反转,这是不应该发生的。谁能帮我修一下吗?
谢谢你!!
我试过这样的方法:
import java.util.Scanner;
public class ReverseWords {
public static void main(String[] args) {
System.out.println("Enter a string to be reversed:");
Scanner input = new Scanner(System.in);
String reverse = "";
while(input.hasNextLine())
{
String str = input.next();
for(int i = str.length()-1; i >= 0; i--)
{
reverse = reverse + str.charAt(i);
}
reverse += " ";
System.out.println(reverse);
}
}
}
预期输出:olleH dlro. olleH avaJ。
我得到的结果是:
OlleH
奥利。德洛
奥利。德洛·奥利
奥利。德洛·奥利。阿瓦伊
这里是java 8解决方案,如果你想限制其他特殊字符,你可能需要修改replace eChar
方法。
public static void main(String[] args) {
String str = "Hello World. Hello Java.";
String collect = Arrays.stream(str.split("\\s+")) // split sentences into words
.map(s -> new StringBuffer(s)) // converting to StringBuffer
.map(s -> s.reverse()) // reversing the string
.map(s -> replaceChar(s)) // replace first char if it is dot
.collect(Collectors.joining(" ")); // join all the words
System.out.println(collect);
}
private static String replaceChar(StringBuffer stringBuffer) {
if(stringBuffer.charAt(0) == '.') {
stringBuffer.deleteCharAt(0);
return stringBuffer.toString() + ".";
}
return stringBuffer.toString();
}
如果你想以命令的方式完成,你可以修改你的代码如下:
String str = "Hello World. Hello Java.";
String[] tokens = str.split("\\s+");
String reverseString = "";
for (String token : tokens) {
String reverse = "";
for (int i = token.length() - 1; i >= 0; i--) {
reverse = reverse + token.charAt(i);
}
if(reverse.charAt(0) == '.') {
reverse = reverse.substring(1) + ".";
}
reverseString = reverseString + " " + reverse;
}
System.out.println(reverseString);
在代码中做了一些修改来处理。用文字表达。
import java.util.Scanner;
public class HelloWorld{
public static void main(String []args){
System.out.println("Enter a string to be reversed:");
Scanner input = new Scanner(System.in);
String reverse = "";
while(input.hasNextLine())
{
String str = input.next();
if(str.contains(".")){
str = str.replace(".","");
for(int i = str.length()-1; i >= 0; i--)
{
reverse = reverse + str.charAt(i);
}
reverse = reverse+".";
}
else{
for(int i = str.length()-1; i >= 0; i--)
{
reverse = reverse + str.charAt(i);
}
}
reverse += " ";
System.out.println(reverse);
}
}
}
本文向大家介绍Java程序可反转句子中的每个单词,包括了Java程序可反转句子中的每个单词的使用技巧和注意事项,需要的朋友参考一下 句子中的每个单词都可以颠倒,并以与以前相同的顺序显示单词。一个例子如下: 演示此过程的程序如下。 示例 输出结果 现在让我们了解上面的程序。 首先,显示原始字符串。然后,方法用于将所有单词存储在数组strWords []中。证明这一点的代码片段如下所示- 字符串rev
问题内容: 我正在尝试反转每个句子的第二个单词 如果给定的字符串是: 所需的输出应为: 我当前的输出是: 我无法达到所需的输出。不知道我在做什么错 这是我的代码 问题答案: 您可以解决各种问题的简便方法!只需使用一个将指示 偶数 或 奇数 位置的变量,更准确地说是任何单词都将被反转! 查看我在您的代码中进行的以下修改,仅添加了三行: 输入项 我叫xyz 输出: 我的eman是zyx
问题内容: 我在程序中插入了一个字符串 怎样才能得到像这样的反向字符串 这是我面试中的一个面试问题。请任何人可以帮助我解决这个问题 问题答案: 拆分它,然后以相反的顺序将其添加到新的对象中。 打印:
问题内容: 这段代码在函数内部: 这是函数: 它无法正常工作,因为通过输入,我得到以下输出:。第一个字母丢失,循环停止,而不是越过空格到达句子的下一部分。 我正在努力实现这一目标: -> 问题答案: 根据原始帖子的修改,OP现在指示其目标是颠倒句子中单词的字母顺序,但将单词保留在其初始位置。 我认为,最简单的方法是利用String 函数,遍历单词并颠倒其顺序。 该方法定义为: 并将方法更改为: 原
本文向大家介绍Python程序以升序排列句子中的单词,包括了Python程序以升序排列句子中的单词的使用技巧和注意事项,需要的朋友参考一下 为了按升序对句子中的单词进行排序,我们首先需要使用空格作为分隔点将句子分为单词。为简单起见,我们仅在空间上进行分割,并让标点符号在那里。我们也可以使用replace或regex将其删除。 拆分句子后,我们可以使用sort或sorted方法按字典顺序对单词进行排
本文向大家介绍Python程序,用句子中的星号替换单词,包括了Python程序,用句子中的星号替换单词的使用技巧和注意事项,需要的朋友参考一下 我们可以使用程序在句子中用星号替换单词,以检查句子中的脏话等。例如, 如果我们有一个句子, 我们要用星号代替的单词,比如鸭子。然后我们的最后一句话看起来像- 我们可以直接使用python中的replace函数来实现此功能。例如, 示例 输出结果 这将给出输