小方法2——ReverseString--判断键盘输入的字符流是否是回文字

/*
 * 判断输入的一个字符串是否是回文字
 * 方法:先将将输入的字符串过滤 得S1,再将S1取逆序 得S2,最后判断,是否S1等于S2。
 * 
 * 知识点: 
 * 1.StringBuilder类的append方法和reverse方法
 * 2. Character的 isLetterOrDigit();方法
 * */
import java.util.Scanner;

public class ReverseString {

	public static void main(String[] args) {
		//构造扫描器
		Scanner input = new Scanner(System.in);
		//提示输入字符串
		System.out.println("Please enter a string:");
		//获取键盘输入
		String str = input.nextLine();	
		
		//打印输出
		System.out.print("Igonoring nonalphanumer ,");//提示,忽略费字母和数字的字符
		new ReverseString().print(str);		//调用打印方法
	}
	
	//打印方法
	private  void print(String str) {
		if (isPlindrome(str)){
			System.out.println(str + " is a palindrome !");			
		}
		else{
			System.out.println(str + " is not a palindrome !");	
		}
		
	}
	
	//判断是否是回文数的方法
	private  boolean isPlindrome(String str) {
		String s1 = filter(str);
		String s2 = reverse(s1);		
		return s1.equals(s2);
	}

	//过滤方法,将字符串中的非字母和数字的字符过滤掉
	private  String filter(String s) {
		StringBuilder  stringbuilder = new StringBuilder();
		for(int i = 0; i < s.length(); i++){
			if(Character.isLetterOrDigit(s.charAt(i))){
				stringbuilder.append(s.charAt(i));
			}				
		}
		return stringbuilder.toString();
	}

	//逆序输出一个字符串的方法
	private  String  reverse(String s) {
		StringBuilder  stringbuilder = new StringBuilder(s);
		stringbuilder.reverse();
		return stringbuilder.toString();
	}

}

### 答1: 可以通过以下代码实现: ```java import java.util.Scanner; public class PalindromeCheck { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入一个字符串:"); String str = scanner.nextLine(); if (isPalindrome(str)) { System.out.println("是文!"); } else { System.out.println("不是文!"); } } public static boolean isPalindrome(String str) { int length = str.length(); for (int i = 0; i < length / 2; i++) { if (str.charAt(i) != str.charAt(length - i - 1)) { return false; } } return true; } } ``` 首先,通过 `Scanner` 类从键盘上输入一个字符串,并保存到 `str` 变量中。然后,调用 `isPalindrome` 方法判断 `str` 是否是文。在 `isPalindrome` 方法中,通过循环遍历字符串的前一半字符,如果前一半字符与后一半字符不相同,则返 `false`,否则返 `true`。 ### 答2: 文是指正读和反读都相同的字符串。我们可以通过以下步骤判断一个字符串是否是文: 1. 从键盘输入一个字符串,可以使用 `Scanner` 类来获取用户输入。 2. 将输入的字符串保存到一个变量中,例如 `input`。 3. 创建一个新的字符串变量 `reverse`,用于存储 `input` 的反转结果。 4. 使用循环遍历 `input` 中的每个字符,将字符从尾到头依次添加到 `reverse` 中。 5. 比较 `input` 和 `reverse` 是否相同,如果相同,则输入的字符串是文;否则,输入的字符串不是文。 6. 根据判断结果输出相应的提示信息。 下面是一个示例代码: ```java import java.util.Scanner; public class PalindromeChecker { public static void main(String[] args) { // 从键盘输入一个字符串 System.out.print("请输入一个字符串:"); Scanner scanner = new Scanner(System.in); String input = scanner.nextLine(); scanner.close(); // 反转输入的字符串 String reverse = ""; for (int i = input.length() - 1; i >= 0; i--) { reverse += input.charAt(i); } // 判断是否是文 if (input.equals(reverse)) { System.out.println("输入的字符串是文。"); } else { System.out.println("输入的字符串不是文。"); } } } ``` 你可以运行代码并输入一个字符串进行测试。 ### 答3: 文是指正向和反向都相同的字符串。要判断一个字符串是否是文,可以按照以下步骤进行: 1. 首先,从键盘上获取用户输入的字符串。 2. 创建一个空字符串变量,用于存储从键盘输入的字符串的反向字符串。 3. 使用一个循环逐个遍历原始字符串中的字符,并将它们添加到反向字符串的开头。 4. 将反向字符串与原始字符串进行比较。 5. 如果两个字符串相等,则说明输入的字符串是文;否则,不是文。 下面是使用Java代码实现上述步骤的示例: ```java import java.util.Scanner; public class PalindromeCheck { public static void main(String[] args) { // 从键盘获取用户输入的字符串 Scanner scanner = new Scanner(System.in); System.out.print("请输入一个字符串:"); String input = scanner.nextLine(); // 创建反向字符串 String reverse = ""; for (int i = input.length() - 1; i >= 0; i--) { reverse += input.charAt(i); } // 判断是否是文 if (input.equals(reverse)) { System.out.println("输入的字符串是文。"); } else { System.out.println("输入的字符串不是文。"); } scanner.close(); } } ``` 通过执行以上代码,我们可以从键盘输入一个字符串,并判断是否是文。输出结果会告诉我们输入的字符串是否是文。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值