如果您在控制台中输入的单词是回文或不是Java,则将程序设置为您
Make the program the you if the word you've inputed in the console is a palindrome or not in Java
我一直在努力让这个程序工作,让这个人在控制台上写一个词,然后让控制台有一个输出,说明这个词是不是回文。
package sct;
import java.util.Scanner;
public class Assignment3Problem4 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("Enter a a string: ");
String DAWORD = reader.nextLine();
reader.close();
int n = DAWORD.length();
boolean isPalindrome = true;
for (int i = 0; i < n; ++i) {
if (DAWORD.charAt(i) != DAWORD.charAt(n - i - 1)) {
isPalindrome = false;
break;
}
if (isPalindrome)
System.out.println("This word is a palindrome");
else
System.out.println("This word is not a palindrome");
}
}
}
遗憾的是,这不起作用,控制台不让我输入字符串,有人可以找出原因并修复代码吗?
在 for
循环 之后 之前,您不应该打印单词是否为回文。这是我 运行 发布代码的唯一问题。
Scanner reader = new Scanner(System.in);
System.out.println("Enter a a string: ");
String DAWORD = reader.nextLine();
reader.close();
int n = DAWORD.length();
boolean isPalindrome = true;
for (int i = 0; i < n; ++i) {
if (DAWORD.charAt(i) != DAWORD.charAt(n - i - 1)) {
isPalindrome = false;
break;
}
}
if (isPalindrome)
System.out.println("This word is a palindrome");
else
System.out.println("This word is not a palindrome");
您可能想要删除 reader.close()
(因为 也 关闭 System.in
)。
您可以考虑的另一种方法是将您的输入放入一个 StringBuilder
对象中,反转它,然后检查它是否等于您的输入。
类似于:
import java.util.Scanner;
public class Whosebug {
public static void main(String args[]) {
Scanner reader = new Scanner(System.in);
System.out.println("Enter a string: ");
String DAWORD = reader.nextLine();
reader.close();
if (new StringBuilder(DAWORD).reverse().toString().contentEquals(DAWORD))
System.out.println("This word is a palindrome");
else
System.out.println("This word is not a palindrome");
}
}
结果:
Enter a string:
racecar
This word is a palindrome
您还可以从此处 https://mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.7 使用外部 apache lang 库。然后你可以使用 StringUtils.reverse() 方法反转字符串,然后将反转的字符串与正常字符串进行比较,如下所示:
import org.apache.commons.lang3.StringUtils;
public class Main4 {
public static void main(String[] args) {
String str = "kajak";
String str2 =StringUtils.reverse(str);
if (str2.equals(str)){
System.out.println("It's a palidrom");
}
else{
System.out.println("Not a palidorm");
}
}
}
我一直在努力让这个程序工作,让这个人在控制台上写一个词,然后让控制台有一个输出,说明这个词是不是回文。
package sct;
import java.util.Scanner;
public class Assignment3Problem4 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("Enter a a string: ");
String DAWORD = reader.nextLine();
reader.close();
int n = DAWORD.length();
boolean isPalindrome = true;
for (int i = 0; i < n; ++i) {
if (DAWORD.charAt(i) != DAWORD.charAt(n - i - 1)) {
isPalindrome = false;
break;
}
if (isPalindrome)
System.out.println("This word is a palindrome");
else
System.out.println("This word is not a palindrome");
}
}
}
遗憾的是,这不起作用,控制台不让我输入字符串,有人可以找出原因并修复代码吗?
在 for
循环 之后 之前,您不应该打印单词是否为回文。这是我 运行 发布代码的唯一问题。
Scanner reader = new Scanner(System.in);
System.out.println("Enter a a string: ");
String DAWORD = reader.nextLine();
reader.close();
int n = DAWORD.length();
boolean isPalindrome = true;
for (int i = 0; i < n; ++i) {
if (DAWORD.charAt(i) != DAWORD.charAt(n - i - 1)) {
isPalindrome = false;
break;
}
}
if (isPalindrome)
System.out.println("This word is a palindrome");
else
System.out.println("This word is not a palindrome");
您可能想要删除 reader.close()
(因为 也 关闭 System.in
)。
您可以考虑的另一种方法是将您的输入放入一个 StringBuilder
对象中,反转它,然后检查它是否等于您的输入。
类似于:
import java.util.Scanner;
public class Whosebug {
public static void main(String args[]) {
Scanner reader = new Scanner(System.in);
System.out.println("Enter a string: ");
String DAWORD = reader.nextLine();
reader.close();
if (new StringBuilder(DAWORD).reverse().toString().contentEquals(DAWORD))
System.out.println("This word is a palindrome");
else
System.out.println("This word is not a palindrome");
}
}
结果:
Enter a string:
racecar
This word is a palindrome
您还可以从此处 https://mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.7 使用外部 apache lang 库。然后你可以使用 StringUtils.reverse() 方法反转字符串,然后将反转的字符串与正常字符串进行比较,如下所示:
import org.apache.commons.lang3.StringUtils;
public class Main4 {
public static void main(String[] args) {
String str = "kajak";
String str2 =StringUtils.reverse(str);
if (str2.equals(str)){
System.out.println("It's a palidrom");
}
else{
System.out.println("Not a palidorm");
}
}
}