这是一个反转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);
}
答案 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");
}