用Java打印原始字符串

时间:2014-10-02 00:11:38

标签: java

所以我的程序确定用户输入是否是回文。但是,如果输入包含大写和小写的混合,那么最终输出将全部为小写。如何进行输出以输出原始用户输入。

当前:用户输入= Aa。输出= aa是回文。

目标:用户输入= Aa。输出= Aa是回文。

import java.util.*; 

public class Colonies { 
    static char [] string;
    static int length; 
    private static Scanner scan;

    public static void main (String[] args){ 

        scan = new Scanner(System.in);
        System.out.println("Please enter a string of characters."); 

        String s = scan.nextLine(); 
        s = s.toLowerCase();
        string = s.toCharArray();
        length = string.length; 
        if (isPalindrome()){ 
            System.out.println(s+" is a palindrome."); 
        }
        else { 
            System.out.println(s+" is not a palindrome."); 
        } 
    } 

    public static boolean isPalindrome(){
        boolean palindrome = true; 

        for (int c = 0; c < length/2; c++){ 
            if(string[c] != string [length - c - 1]){ 
                palindrome = false; 
            } 
        } 

        if (palindrome){ 
            return true; 
        } else { 
            return false; 
        } 
    } 
}

3 个答案:

答案 0 :(得分:3)

如果要使其返回原始字符串,只需保存原始字符串的副本即可。如果副本是回文,只需返回原始字符串,而不是复制的字符串。

答案 1 :(得分:2)

不要在输入字符串上使用toLowerCase。相反,将您的案例转换推迟到您进行比较的点,即更改

if(string[c] != string [length - c - 1]){ 

if(Character.toLowerCase(string[c]) != Character.toLowerCase(string [length - c - 1])){ 

通过这种方式,您仍然可以获得所需的比较,而无需修改输入。

答案 2 :(得分:0)

s = s.toLowerCase();此代码正在将您的Aa更改为aa