如何确定用户';的输入字符串是用相同的向后(回文)JAVA读取的 package com.jetbrains; 导入java.util.Objects; 导入java.util.Scanner; 公共类SA{ 公共静态void main(字符串[]args){ //扫描对象 扫描仪输入=新扫描仪(System.in); //评论 System.out.println(“请在下面输入一行文本:”); String letters=input.nextLine();//用户的字符串输入 if(字母长度()7){ System.out.println(“转换为大写:”); System.out.println(letters.toUpperCase()); System.out.println(“用最后5个字符交换前2个字符:”;//交换 System.out.println(应答); System.out.println(“它是回文吗?”); 对于(int i=(letters.length()-1);i>=0;i--){ 字符向后=(字母.charAt(i)); for(int n=letters.indexOf(0);n>=0;n++){ char forwards=(字母.charAt(n)); if(Objects.equals(向前、向后)){ System.out.println(“真”); 其他的 System.out.println(“假”); } } } } } }
我尝试通过将for循环输出转换为char变量来比较用户的输入,但它总是返回false。我不知道如何修复这最后一点,我尝试过做其他事情,但我完全被难住了。我的类尚未学习StringBuilder或StringBuffer,因此我无法在代码中使用它们。任何提示都会非常有用,谢谢 检查回文的第二个循环有一个问题,我试图解决它,但尽管它将每个向后的字母与所有向前的字母进行比较,这在逻辑上是错误的,但您可以做一些更好的事情:如何确定用户';的输入字符串是用相同的向后(回文)JAVA读取的 package com.jetbrains; 导入java.util.Objects; 导入java.util.Scanner; 公共类SA{ 公共静态void main(字符串[]args){ //扫描对象 扫描仪输入=新扫描仪(System.in); //评论 System.out.println(“请在下面输入一行文本:”); String letters=input.nextLine();//用户的字符串输入 if(字母长度()7){ System.out.println(“转换为大写:”); System.out.println(letters.toUpperCase()); System.out.println(“用最后5个字符交换前2个字符:”;//交换 System.out.println(应答); System.out.println(“它是回文吗?”); 对于(int i=(letters.length()-1);i>=0;i--){ 字符向后=(字母.charAt(i)); for(int n=letters.indexOf(0);n>=0;n++){ char forwards=(字母.charAt(n)); if(Objects.equals(向前、向后)){ System.out.println(“真”); 其他的 System.out.println(“假”); } } } } } },java,string,for-loop,palindrome,Java,String,For Loop,Palindrome,我尝试通过将for循环输出转换为char变量来比较用户的输入,但它总是返回false。我不知道如何修复这最后一点,我尝试过做其他事情,但我完全被难住了。我的类尚未学习StringBuilder或StringBuffer,因此我无法在代码中使用它们。任何提示都会非常有用,谢谢 检查回文的第二个循环有一个问题,我试图解决它,但尽管它将每个向后的字母与所有向前的字母进行比较,这在逻辑上是错误的,但您可以做一些更好的事情: package com.jetbrains; import java.util
package com.jetbrains;
import java.util.Objects;
import java.util.Scanner;
public class SA {
public static void main(String[] args) {
//scanner object
Scanner input = new Scanner(System.in);
//comment
System.out.println("Please enter a line of text below:");
String letters = input.nextLine(); //User's string input
if (letters.length() < 7) {
System.out.println("The input is too short.");
}
//variables
int l = letters.length()-5; //where the last 5 characters are located in user's input string
String answer = letters.substring(l) + letters.substring(2,l) + letters.substring(0, 2); // first 2 & last 5 swapped
if (letters.length() > 7) {
System.out.println("Convert to upper cases:");
System.out.println(letters.toUpperCase());
System.out.println("Swap the first 2 characters with the last 5 characters:"); // Swap
System.out.println(answer);
System.out.println("Is it a palindrome?");
for (int i = (letters.length() - 1); i >= 0; i--) {
char backwards = (letters.charAt(i));
for (int n = letters.indexOf(0); n >= 0; n++) {
char forwards = (letters.charAt(n));
if (Objects.equals(forwards, backwards)) {
System.out.println("True");
else
System.out.println("False");
}
}
}
}
}
}
System.out.println(“分析#3:这是回文吗?”);
布尔响应=真;
对于(int i=0;i
您在检查回文的第二个循环中遇到问题,我试图解决它,但尽管它将每个向后的字母与所有向前的字母进行比较,这在逻辑上是错误的,但您可以做一些更好的事情:
package com.jetbrains;
import java.util.Objects;
import java.util.Scanner;
public class SA {
public static void main(String[] args) {
//scanner object
Scanner input = new Scanner(System.in);
//comment
System.out.println("Please enter a line of text below:");
String letters = input.nextLine(); //User's string input
if (letters.length() < 7) {
System.out.println("The input is too short.");
}
//variables
int l = letters.length()-5; //where the last 5 characters are located in user's input string
String answer = letters.substring(l) + letters.substring(2,l) + letters.substring(0, 2); // first 2 & last 5 swapped
if (letters.length() > 7) {
System.out.println("Convert to upper cases:");
System.out.println(letters.toUpperCase());
System.out.println("Swap the first 2 characters with the last 5 characters:"); // Swap
System.out.println(answer);
System.out.println("Is it a palindrome?");
for (int i = (letters.length() - 1); i >= 0; i--) {
char backwards = (letters.charAt(i));
for (int n = letters.indexOf(0); n >= 0; n++) {
char forwards = (letters.charAt(n));
if (Objects.equals(forwards, backwards)) {
System.out.println("True");
else
System.out.println("False");
}
}
}
}
}
}
System.out.println(“分析#3:这是回文吗?”);
布尔响应=真;
对于(int i=0;i
为了得到正确的结果,我对您的代码进行了一些修改-
System.out.println("Analysis #3: Is it a palindrome?");
boolean response = true;
for (int i = 0 ; i < letters.length() ; i++) {
String backwards = String.valueOf(letters.charAt(i));
String forwards = String.valueOf(letters.charAt(letters.length()-i-1));
if(!backwards.equals(forwards)) {
response = false;
}
}
System.out.println(response);
import java.util.Scanner;
公共类分析{
公共静态void main(字符串[]args){
//创建扫描仪对象
扫描仪输入=新扫描仪(System.in);
//对用户的评论
System.out.println(“请在下面输入一行文本:”);
String letters=input.nextLine();//用户的字符串输入
if(字母长度()<7){
System.out.println(“输入太短,无法执行分析”);
}
//变数
int l=letters.length()-5;//表示用户输入字符串中最后5个字符所在位置的索引号
字符串答案=字母。子字符串(l)+字母。子字符串(2,l)+字母。子字符串(0,2);//交换前2个和最后5个
如果(字母长度()>7){
System.out.println(“分析#1:转换为大写:”);//大写
System.out.println(letters.toUpperCase());
System.out.println(“分析#2:用最后5个字符交换前2个字符:”;//交换
System.out.println(应答);
System.out.println(“分析#3:它是回文吗?”);
字符串向后=”;
对于(int i=(letters.length()-1);i>=0;i--){
向后=向后+字母。字符(i);
}
if(字母等信号格(向后)){
System.out.println(“真”);
}否则{
System.out.println(“假”);
}
}
}
}
为了得到正确的结果,我对您的代码进行了一些修改-
System.out.println("Analysis #3: Is it a palindrome?");
boolean response = true;
for (int i = 0 ; i < letters.length() ; i++) {
String backwards = String.valueOf(letters.charAt(i));
String forwards = String.valueOf(letters.charAt(letters.length()-i-1));
if(!backwards.equals(forwards)) {
response = false;
}
}
System.out.println(response);
import java.util.Scanner;
公共类分析{
公共静态void main(字符串[]args){
//创建扫描仪对象
扫描仪输入=新扫描仪(System.in);
//对用户的评论
System.out.println(“请在下面输入一行文本:”);
String letters=input.nextLine();//用户的字符串输入
if(字母长度()<7){
System.out.println(“输入太短,无法执行分析”);
}
//变数
int l=letters.length()-5;//表示用户输入字符串中最后5个字符所在位置的索引号
字符串答案=字母。子字符串(l)+字母。子字符串(2,l)+字母。子字符串(0,2);//交换前2个和最后5个
如果(字母长度()>7){
System.out.println(“分析#1:转换为大写:”);//大写
系统输出打印LN(le