2016-09-24 135 views
-1

我觉得我只缺少几个步骤。我不想找人来完成它,只需要正确的方向帮助。编写一个程序来确定回文。我必须使用toUppercase和toLowercase使其不区分大小写

问题在于它仍然说,例如,“中午”不是回文。

我不知道如何进一步转换它。

Scanner input = new Scanner(System.in); 

    System.out.println("Please enter a string of 8 or less characters: "); 
    String s = input.nextLine(); 

    int low = 0; 

    int high = s.length() - 1 ; 

    boolean isPalindrome = true; 

    while(low < high){ 
     if(s.charAt(low) !=s.charAt(high)) 
     { 
      isPalindrome = false; 
      break; 
     } 
    low++; 
    high--; 
} 

    String upper = s.toUpperCase(); 
    String lower = s.toLowerCase(); 

    if(high>8) 
    { 
     System.out.println("Too Long!"); 
    } 
    else if(isPalindrome) 
    { 
     System.out.println(s + " is a Palindrome"); 
    } 
    else if((isPalindrome)&&s.toUpperCase().equals(s.toUpperCase())) 
    { 
     System.out.println(s + " is a Palindrome"); 
    } 
    else 
     System.out.println(s + " is not a Palindrome"); 
+0

帮助如何? - 您尚未发布具体问题。为了帮助改进上述问题,请查看[Jon Skeet的StackOverflow问题清单](http://codeblog.jonskeet.uk/2012/11/24/stack-overflow-question-checklist/)。这是他在[写完美的问题]上精彩的长篇文章的缩写版本(http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)。 –

+1

编程艺术正在完成这项任务,并将其分解为具体步骤。那就是只有练习(以这种作业的形式)才能帮助你,因为从那里开始编写代码是很简单的部分。 –

+0

提示 - 当您到达else if部分中的s.toUpperCase时,isPalindrome已经是false。您需要在检查每个字符的时候进行大写。 –

回答

0

更改逻辑来检查下面的字符n尝试。 它会使其不区分大小写。

while(low < high){ 
      if(s.toUpperCase().charAt(low) != s.toUpperCase().charAt(high)) 
      { 
       isPalindrome = false; 
       break; 
      } 
     low++; 
     high--; 
    } 
-1
package javaprograme; 

import java.util.Scanner; 

public class PalindromStringExample { 
    public static boolean palidrom(String name) 
    { 
     char[] ch = name.toCharArray(); 
     for(int i=0,j=ch.length-1; i<(ch.length/2); i++,j--) 
     { 
      if(ch[i]!=ch[j]) 
      { 
       return false; 
      } 
     } 
     return true; 

    } 

    public static void main(String[] args) 
    { 
     Scanner input = new Scanner(System.in); 
     String s = input.nextLine(); 
     if(s.length()>8) 
     { 
      System.out.println("Too Long!"); 
     } 
     else 
     {  
      boolean value =palidrom(s); 
      s.toUpperCase(); 
      if(!value) 
      { 
       System.out.println("Given String is not a palindrom"); 
      } 
      else 
      { 
       System.out.println("Given String is a palindrom"); 
      } 
     } 
    } 
}