
非要递归么,
public static void main(String[] args) throws Exception {
String string="1234";
StringBuilder stringBuilder=new StringBuilder(string);
if(stringBuilderreverse()toString()equals(string))
Systemoutprintln("回文");
else
Systemoutprintln("不是回文");
}
这段代码是判断输入的字符串是不是回文。
所谓回文,是指诸如:abcba这样的字符串,也就是说第一个字母也最后一个字母相同,第二个字母与倒数第二个字母相同,以些类推。
这段代码的关键是下面这几句:
while (j <= (i / 2) -1 && wordcharAt(j) == wordcharAt(i - j - 1))
j++;
这个就是从字符串的第一个字母开始逐一判断是否满足回文的要求,如果所有的都满足,那么,这个循环结束时,j = (i/2),这样就可以用下面的条件语句来判断是否为回文了。
下面是这段代码的注释,希望能帮到你~!
import javautilScanner;
public class PalindromeV1 {
public static void main(String[] args) {
Scanner sc = new Scanner(Systemin);//接受从控制台的输入
Systemoutprintln("输入一个字符串: ");
String word = scnext();//将用户输入的字符串保存到word中
int i = wordlength();//获取输入的字符串的长度,保存到i中
int j = 0;//初始化变量j
//从字符串的第一个字母开始逐一判断是否满足回文的要求,如果所有的都满足,那么,这个循环结束时,j = (i/2)
while (j <= (i / 2) - 1 && wordcharAt(j) == wordcharAt(i - j - 1))
j++;
//判断是否为回文
if (j == i / 2)
Systemoutprintln("输入字符串是回文");
else
Systemoutprintln("输入字符串不是回文");
}
}
老大,
首先,这一行
int charNumbers=slenght();
slength(),不是lenght();
sgetChars(),不是sgetchar
最重要的一点,你把main方法写在类定义的外面……
public class d
{
public static String reverse(String s)
{
int charNumbers=slength();
char[] chars=new char[charNumbers];
sgetChars(0,charNumbers,chars,0);
String result=" " ;
for(int i=charNumbers-1;i>=0;i--)
{
result=result+chars[i];}
return result;
}
public static void main(String args[])
{
String word ="noon";
if(wordequals(reverse(word)))
{Systemoutprintln(word+"是一个回文单词!");}
else
{Systemoutprintln(word+"不是一个回文单词!");}
}
}
假设这个数是变量a,那么:
String s1 = a+"";//转成字符串先
String s2 = "";
for(int i=s1length()-1;i>=0;i--){//把s1反序,用s2接收
s2 += s1substring(i,i+1);
}
if(s1==s2){
Systemoutprint(a+"是回文数");
}else{
Systemoutprint(a+"不是回文数");
}
public boolean isPalindrome(char[] text){
boolean flag = true ;
int i = 0;
int textLen = 0 ;
if (null != text){
textLen = textlength ;
}else{
return false ;
}
int middle = (textLen-1)/2 ;
for(i = 0; i <= middle ; i++){
if(text[i] != text[textLen-i-1]){
flag = false ;
break ;
}
}
return flag ;
}
import javautilScanner;
public class PalindromicNumber {
public static void main(String[] args) {
Systemoutprintln("一个正整数n(0 < n <= 100000 )");
Scanner sc = new Scanner(Systemin);
int n = scnextInt();
int count = 0;
for(int i=1;i<=n;i++){
if(isPalindromicNumber(i)){
count++;
}
}
scclose();
Systemoutprintln("1~"+n+"之间总共"+count+"个回文数");
}
private static boolean isPalindromicNumber(int n){
String num = StringvalueOf(n);
if(numlength()!=1){
char[] temp = numtoCharArray();
for(int i=0;i<templength/2;i++){
if(temp[i]!=temp[templength-1-i]){
return false;
}
}
}
//Systemoutprintln(n+"是回文数");
return true;
}
}
已经测试过,符合你的要求,代码如下:望采纳!
import javaioBufferedReader;
import javaioIOException;
import javaioInputStreamReader;
public class numberCom {
public static void main(String args[]) throws IOException{
//创建数据量对象
BufferedReader br = new BufferedReader(new InputStreamReader(Systemin));
Systemoutprintln("请输入数字:");
//从键盘读取数据
int number =IntegerparseInt(brreadLine()trim());
numberCom n = new numberCom();
if(number==nisPalindrome(number)){
Systemoutprintln("是回文数");
}else{
Systemoutprintln("不是回文数");
};
}
public int isPalindrome(int x){
String result = "";
int n = 10;
int y;
int z = 0;
for(int i=0;i<5;i++){
y = x%n-z;
z = z+y;
y = y10/n;
result = result+y;
n = n10;
}
return IntegerparseInt(result);
}
}
以上就是关于用Java的递归方法写一个程序,判断一个数是否是回文数,最好能用在Eclipse全部的内容,包括:用Java的递归方法写一个程序,判断一个数是否是回文数,最好能用在Eclipse、java 的一段监测回文代码、用JAVA编写程序检查是否为回文单词等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)