所以我决定在字符串中打印所有回文单词。我没有使用数组或方法来找到只有3个字符的回文。这是我的代码,问题是,它什么都没打印
import java.util.Scanner;
class Pa{
public static void main(String[] args){
Scanner sc = new Scanner (System.in);
String s=sc.nextLine();
char b;
int i,a;
String st="";/to extract a word
s=s+" ";
String t="";/to extract the reverse of the word
a=s.length();
for(i=0;i<a;i++){
b=s.charAt(i);
if(b!=' '){
st=st+b;/word
t=b+st;/reversed word
} else {
if(st.equals(t)){
System.out.println(st);
}
st="";
t="";
}
}
}
}
我无法弄清楚错误是什么,也不会欣赏分裂或3字回文查找器选项或普通的偶数或奇数回文查找选项。
答案 0 :(得分:1)
要检查String是否是Palindrom,单个循环就足够了
public static boolean isPalindrom(String word) {
word = word.toLowerCase();
for (int i = 0; i < word.length() / 2; i++) {
if (word.charAt(i) != word.charAt(word.length() - (i + 1))) {
return false;
}
}
return true;
}
然后你可以在input.split("\\s")
这样的每个空格处拆分你的输入字符串,并检查每个单词是否是一个palindrom
答案 1 :(得分:0)
你的问题如下。不是将b附加到反向字符串,而是将其附加到普通字符串。
b=s.charAt(i);
if(b!=' '){
st=st+b;
t=b+st; // This should be t=b+t
} else {
答案 2 :(得分:0)
检查回文的最简单方法:
private static boolean isPalindrom(String s) {
return s.equals(new StringBuilder(s).reverse().toString());
}
答案 3 :(得分:0)
//input-mom gives me a pen(reverse-mom sevig em a nep)(checking each word by reverse)//
//output-palindrome//
//input-he is a boy//
//output-not a palindrome//
import java.util.*;
class main2
{
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
System.out.println("Enter a string");
String str=sc.nextLine(); //he is a boy//
int ctr=0;
String temp="",temp1="",x="",y="";
int i,j;
String str1[]=str.split(" ");//[he,is,a,boy]//
for(i=0;i<str1.length;i++)//length=4//
{
temp=str1[i];//reverse each word//
for(j=temp.length()-1;j>=0;j--)
{
x=x+temp.charAt(j);
}
x=x+" ";
}
System.out.println(x);
for(int k=0;k<str1.length;k++)
{
temp1=str1[k]; //he//
for(int l=temp1.length()-1;l>=0;l--)
{
y=y+temp1.charAt(l);//eh//
}
if(y.equalsIgnoreCase(temp1))//he==eh?//
{
ctr++;
System.out.println(y);//for printing the word//
}
}
if(ctr==0)
System.out.println("Not a palindrome");
else
System.out.println("Palindrome");
}
}
答案 4 :(得分:0)
import java.util.*;
class palindrome {
String reverse(String str)
{
String tmp="";
int l=str.length()-1;
for(int i=l,n=0;i>=n;i--)
{
tmp=tmp+str.charAt(i);
}
return tmp;
}
}
class palindrome_word{
public static void main(String[] args){
Scanner sc = new Scanner (System.in);
palindrome ob=new palindrome ();
System.out.println("enter a sentance");
String s=sc.nextLine();
char b;
int i,a;
String st="";//to extract a word
s=s+" ";
String t="";//to extract the reverse of the word
a=s.length();
System.out.println("palindrome words");
for(i=0;i<a;i++){
b=s.charAt(i);
if(b!=' '){
st=st+b;//word
// t=b+st;reversed word
} else {
t=ob.reverse(st);
if(st.equalsIgnoreCase(t)){
System.out.println(st);
}
st="";
t="";
}
}
sc.close();
}
}