java判断回文的两种方法

第一种:面向过程:

从字符串Str.length()/2开始向两端移动进行对比 ,boolean用来确定一个返回值判断是否回文

Scanner input = new Scanner(System.in);
		try{
		System.out.println("Enter a three-digit interger:");
		String integer = input.next();
		int i = integer.length()/2-1;//从字符串中间往左
		int j = integer.length()/2+1;//从字符串中间往右
		boolean c = true;//默认为真
		for(;i >= 0 || j < integer.length();i--,j++){//遍历整个字符串判断是否为回文
			if(integer.charAt(i) != integer.charAt(j))			
				c = false;					
			else 
				c = true;
		}
		if(c == false)
			System.out.println(integer+" is not a palindrome");
		else 
			System.out.println(integer+" is a palindrome");
		}finally{
			input.close();
		}

第二种:面向对象:

使用StringBuffer定义一个对象integerBuffer,对integerBuffer进行反转赋值给普通String类型 string,将两者进行对比

需要注意的是,StringBuffer和String不是同一种类型,不能直接进行对比或者是强制转换。

Scanner input = new Scanner(System.in);
		try{
		System.out.println("Enter a three-digit interger:");
		String string ;
		StringBuffer integerBuffer1 = new StringBuffer(input.next());
		string = integerBuffer1.toString();//将输入对象转换为String类型的字符串,赋值给string
		if(string.equals(integerBuffer1.reverse().toString())){//判断string是否和反转后的字符串相同
			System.out.println(string+" is a palindrome");
		}
		else{
			System.out.println(string+" is not a palindrome");
		}
		}finally{
			input.close();
		}

猜你喜欢

转载自blog.csdn.net/guiguliang/article/details/79594919