标签:string sys 转换 stat reader 回文数 ade ima splay
1.题目:
设计思想:首先字符串的输入运用nextInt转换就可以,进行输入即可。这道题目主要是判断是否为回文字符串的那部分,可以将方法定义在主函数中,也可以定义在主函数外进行调用。判断部分:.length()判断长度,.charAt()接收字符,关键是控制进程的算法,因为是回文字符串,所以判断的是对应位置,找到准确的对应位置是关键,
a=str.length()-n; b=str.length()-(a+1); 两者一个从头开始,一个从尾部开始,开始相向而行,两者控制对应位置,下面运用递归算法 一遍又一遍判断对应位置的值是否一样,当两者一样,进行一次确定,只有一个字符就是回文数的判断等。
流程图:
程序代码:
//使用递归方式判断某个字串是否是回文
import java.util.*;
public class Huiwenzifuchuan
{
public static void main(String[] args)
{
System.out.println("请输入字符串:");
Scanner reader=new Scanner(System.in);
String str=reader.next();
int n=str.length();//测定字符串的长度,区分数组判断长度的,测定数组的没有括号
int m=huiwen(str,n);
if(m==1)
System.out.println("这个字符串是回文字符串!");
else
System.out.println("这个字符串不是回文字符串!");
}
public static int huiwen(String str,int n)
{
int a,b,j=0;
char c1,c2;
a=str.length()-n;//控制进程 从第一个开始正向移动
b=str.length()-(a+1);//从最后一个开始倒着移动
c1=str.charAt(a);//取字符的函数
c2=str.charAt(b);
if(c1==c2||a==b) j=1;//判断 如果相应的字符一样 J=1,//奇数个字符时 多出来的一个 不用递归判断 直接是回文字符串
if(a!=b&&a<b&&j==1)
huiwen(str,n-1);//递归 判断下一对字符 并且a和b正向判断一次后就不必让a和b走到尽头继续判断 两者达到终点即可
//if(a==b) j=1;//奇数个字符时 多出来的一个 不用递归判断 直接是回文字符串)
return j;
}
}
程序运行截图:
标签:string sys 转换 stat reader 回文数 ade ima splay
原文地址:http://www.cnblogs.com/mm20/p/7659006.html