测试char反转字符串的结果

时间:2011-12-02 12:13:54

标签: java junit

这是一个反转String的主要方法。如何以编程方式测试反转字符串是否正确?

public static void main(String args[]){

    String reverseStatement = "reverse this statement";
    String reversed = "";

    for(int count = reverseStatement.length() - 1; count >= 0; --count){
        reversed += String.valueOf(reverseStatement.charAt(count));
    }

    System.out.println("Reversed is - "+reversed);
}

3 个答案:

答案 0 :(得分:4)

将反向代码移动到单独的方法中,如下所示:

private static String reverse(String string) {
    return new StringBuilder(string).reverse().toString()
}

请注意,直接添加大量字符串(例如在原始代码中)可能非常慢。我建议您google java.lang.StringBuilder以获取更多示例。

之后,您可以轻松地测试并验证您的方法是否正确。

public static void main(String args[]) {
    String statement = "reverse this statement";
    String reversed = reverse(statement);

    if (!reversed.equals("tnemetats siht esrever")) {
        throw new RuntimeException("the string was not correctly reversed");
    }

    // reversing twice should yield the original string
    if (!statement.equals(reverse(reverse(statement)))) {
        throw new RuntimeException("reversing a string twice should yield the original, but it doesn't");
    }
}

答案 1 :(得分:1)

再次循环

In While Loop

count=0;
length = originalString.length;

if(!originialString[count].equals(reversedString[length])
{
  System.out.println("BUGGY BUG");
  break; // original and reversed strings are not equal
}

count++;
length--;

答案 2 :(得分:1)

您提供的代码可能相当慢。查看名为StringBuffer的内容。 StringBuffer有一个允许你反转String的方法。这是它的工作原理:

StringBuffer sb = new StringBuffer(yourstringhere);
sb.reverse();

上面的代码将反转String。

现在检查反转的String是否是已经输入的String,我们可以简单地使用String类中的.equals。

    if (sb.toString ().equals (originalString))
{
    System.out.println ("The Strings match");
}
else
{
    System.out.println ("The String don't match");
}

现在,如果您不想这样做,只需查看您拥有的内容即可。然后你可以使用相同的逻辑。使用String类中的.equals来比较您的reversedStatement和reverse。

        if (string.equals (originalString))
{
    System.out.println ("The Strings match");
}
else
{
    System.out.println ("The String don't match");
}