Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在字符串中打印回文单词?_Java - Fatal编程技术网

Java 如何在字符串中打印回文单词?

Java 如何在字符串中打印回文单词?,java,Java,所以我决定用一个字符串打印所有回文单词。我没有使用数组或方法来查找只有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; i

所以我决定用一个字符串打印所有回文单词。我没有使用数组或方法来查找只有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="";
            }
        }
    }
}
import java.util.Scanner;
Pa类{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
字符串s=sc.nextLine();
字符b;
int i,a;
字符串st=“”;/以提取单词
s=s+“”;
字符串t=“”;/提取单词的反面
a=s.长度();

对于(i=0;i要检查字符串是否为回文,单个循环就足够了

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;
}
public静态布尔值isAlindrom(字符串字){
word=word.toLowerCase();
for(int i=0;i

然后,您可以在每个空白处拆分输入字符串,如
input.split(\\s”)
,并检查每个单词是否为回文,以检查字符串是否为回文单个循环就足够了

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;
}
public静态布尔值isAlindrom(字符串字){
word=word.toLowerCase();
for(int i=0;i

然后,您可以在每个空白处拆分输入字符串,如
input.split(\\s”)
,并检查每个单词是否为回文您的问题如下。您不是将b附加到反向字符串,而是将其附加到正常字符串

        b=s.charAt(i);
        if(b!=' '){
            st=st+b; 
            t=b+st; // This should be t=b+t
        } else { 

您的问题如下。您不是将b附加到反向字符串,而是将其附加到正常字符串

        b=s.charAt(i);
        if(b!=' '){
            st=st+b; 
            t=b+st; // This should be t=b+t
        } else { 

检查回文的最简单方法是:

private static boolean isPalindrom(String s) {
    return s.equals(new StringBuilder(s).reverse().toString());
}

检查回文的最简单方法是:

private static boolean isPalindrom(String s) {
    return s.equals(new StringBuilder(s).reverse().toString());
}
//input mom给我一支笔(反向mom sevig em nep)(反向检查每个单词)//
//输出回文//
//他是个男孩//
//输出不是回文//
导入java.util.*;
2级
{
公共静态void main(字符串参数[])
{
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入字符串”);
String str=sc.nextLine();//他是个男孩//
int ctr=0;
字符串temp=“”,temp1=“”,x=“”,y=“”;
int i,j;
字符串str1[]=str.split(“”;//[he,is,a,boy]//
对于(i=0;i=0;j--)
{
x=x+温度特性(j);
}
x=x+“”;
}
系统输出println(x);
对于(int k=0;k=0;l--)
{
y=y+temp1.charAt(l);//eh//
}
如果(y.equalsIgnoreCase(temp1))//he==eh//
{
ctr++;
System.out.println(y);//用于打印单词//
}
}
如果(ctr==0)
System.out.println(“不是回文”);
其他的
System.out.println(“回文”);
}
}
//输入妈妈给我一支笔(反向妈妈给我一支笔)(反向检查每个单词)//
//输出回文//
//他是个男孩//
//输出不是回文//
导入java.util.*;
2级
{
公共静态void main(字符串参数[])
{
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入字符串”);
String str=sc.nextLine();//他是个男孩//
int ctr=0;
字符串temp=“”,temp1=“”,x=“”,y=“”;
int i,j;
字符串str1[]=str.split(“”;//[he,is,a,boy]//
对于(i=0;i=0;j--)
{
x=x+温度特性(j);
}
x=x+“”;
}
系统输出println(x);
对于(int k=0;k=0;l--)
{
y=y+temp1.charAt(l);//eh//
}
如果(y.equalsIgnoreCase(temp1))//he==eh//
{
ctr++;
System.out.println(y);//用于打印单词//
}
}
如果(ctr==0)
System.out.println(“不是回文”);
其他的
System.out.println(“回文”);
}
}
导入java.util.*;
类回文{
字符串反转(字符串str)
{  
字符串tmp=“”;
int l=str.length()-1;
对于(int i=l,n=0;i>=n;i--)
{
tmp=tmp+str.charAt(i);
}
返回tmp;
}  
}
类回文词{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
回文ob=新回文();
System.out.println(“输入一个句子”);
字符串s=sc.nextLine();
字符b;
int i,a;
String st=”“;//提取一个单词
s=s+“”;
字符串t=”“;//提取单词的反面
a=s.长度();
System.out.println(“回文词”);
对于(i=0;i
import java.util.*;
类回文{
字符串反转(字符串str)
{  
字符串tmp=“”;
int l=str.length()-1;
对于(int i=l,n=0;i>=n;i--)
{
tmp=tmp+str.charAt(i);
}
返回tmp;
}  
}
类回文词{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
回文ob=新回文();
System.out.println(“输入一个句子”);
字符串s=sc.nextLine();
字符b;
int i,a;
String st=”“;//提取一个单词
s=s+“”;
字符串t=”“;//提取单词的反面
a=s.长度();
System.out.println(“回文词”);

对于(i=0;iYou真的应该将回文逻辑分解为一个单独的函数。这将使调试变得更加容易。创建函数bool isPalindrome(字符串s)。@rockabye Java You