java - 句子中的反转字符

标签 java string char

我试图在不使用 split 功能的情况下反转句子中的字符。我真的很接近,但我错过了最后一封信。有人可以指出我正确的方向吗?现在它将“This is a new sentence”打印为“sihT si a wen cnetnes”我还包含了 if(start == 0) 因为程序会跳过初始空格字符,但我没有不明白为什么?

static String reverseLetters(String sentence)
    StringBuilder reversed = new StringBuilder("");
        int counter = 0;
        int start = 0;
        String word;

        for(int i = 0; i <= sentence.length()-1 ; i++ )
        {
            if(sentence.charAt(i)== ' '|| i == sentence.length()-1 )
            {
                StringBuilder sb = new StringBuilder("");
                sb.append(sentence.substring(start,i));
                if(start == 0)
                {
                start = i;
                word = sb.toString();
                reversed.append(reverseChar(word));
                reversed.append(' ');
                }
                else
                {
                    start = i;
                    word = sb.toString();
                    reversed.append(reverseChar(word));
                }
            }


  return reversed.toString();
        }

static String reverseChar (String word)
{
    StringBuilder b = new StringBuilder("");
    for(int idx = word.length()-1; idx >= 0; idx -- )
    {
        b.append(word.charAt(idx));
    }
    return b.toString();
}

最佳答案

  • start 表示wordStart。由于 i 指向空格,下一个 wordStart 应该指向 i 之后。
  • 因此最后一个 i 应该指向最后一个单词 char 之后,应该是 length()
  • if-then-else 过于宽泛;在一种情况下必须添加一个空格:我指向空格。

可以无条件循环,并在 i == length() 中中断循环代码。

关于java - 句子中的反转字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14861995/

相关文章:

mysql - MySQL 用户表字符密码

java - Apache solr 如何索引不同的文件

Java - 打印显示换行符的字符串

java - 如何在 JFrames 中使用 2 类绘制通过 Netbeans 中的 Palette 生成代码?

java - java中的拆分和替换方法

c# - 在 Csharp winform 中将所有空字符串文本框 ("") 设置为空值的简单方法是什么?

java - 打印独特的字符及其出现

不能声明一个 size=var 的字符串,即使 var 是 const

java - 盒子碰撞检测和弹跳

java - Eclipse 说选择不包含主要类型?