2014-03-26 2 views
-3

Как сделать ввод инструкции else ли числа, которые я ввел, являются палиндром или нет? первая часть работает над им просто застряла в другом заявлении, пытаясь выяснить, как заставить его работать. Heres мой кодпродолжать получать код с ошибкой

import java.util.*; 
public class Lab6 
{ 
    public static void main (String [] args) 
    { 
     String pal1, pal2=""; 
     int choice; 
     Scanner in = new Scanner(System.in); 


     System.out.println("Word(w) or Number(n)?"); 
     choice = in.nextLine().charAt(0); 

     if (choice == 'w') { 

      System.out.println("Enter a word: "); 
      pal1= in.nextLine(); 

      int length = pal1.length(); 


      for (int i = length - 1 ; i >= 0 ; i--) 
      pal2 = pal2 + pal1.charAt(i); 


     if (pal1.equals(pal2)) 
      System.out.println("The word you entered is a palindrome."); 
     else 
      System.out.println("The word you entered is not a palindrome."); 
     } 
     else{ 

      System.out.println("Enter a bunch of numbers: "); 
      pal1 = in.nextLine(); 

      pal1 = String.valueOf(in.nextInt()); 
      int numLength = pal1.length(); 

      for (int j = numLength - 1 ; j >= 0 ; j--) 
      pal2 = pal2 + pal1.charAt(j); 

     if (pal1.equals(pal2)) 
      System.out.println("The numbers you entered is a palindrome."); 
     else 
      System.out.println("The numbers you entered is not a palindrome."); 
     } 
    } 
} 
+1

Какую ошибку вы получаете? Что не работает должным образом? –

+0

Что такое «первая часть»? Какое выражение 'else'? (Их три.) Вы должны быть более конкретными, какую проблему вы пытаетесь решить. – Wyzard

+0

первый оператор if else. а не выражение if else внутри оператора if else. @Wyzard – programmingnoob

ответ

0

Ваш вопрос очень неоднозначный, если вы пытаетесь, чтобы сообщить пользователю о том, что строка, введенная не является палиндромом, тогда смотрите ниже ...

Вы пробовали поставить, если заявление в скобках? вы должны соблюдать осторожность при записи if/for statement без них.

public class Lab6 
{ 
    public static void main (String [] args) 
    { 
     String pal1, pal2=""; 
     int choice; 
     Scanner in = new Scanner(System.in); 


     System.out.println("Word(w) or Number(n)?"); 
     choice = in.nextLine().charAt(0); 

     if (choice == 'w') { 

      System.out.println("Enter a word: "); 
      pal1= in.nextLine(); 

      int length = pal1.length(); 


      for (int i = length - 1 ; i >= 0 ; i--) 
      pal2 = pal2 + pal1.charAt(i); 


     if (pal1.equals(pal2)){ 
      System.out.println("The word you entered is a palindrome."); 
     } else{ 
      System.out.println("The word you entered is not a palindrome."); 
     } 
     } 
     else{ 

      System.out.println("Enter a bunch of numbers: "); 
      pal1 = in.nextLine(); 

      pal1 = String.valueOf(in.nextInt()); 
      int numLength = pal1.length(); 

      for (int j = numLength - 1 ; j >= 0 ; j--) 
      pal2 = pal2 + pal1.charAt(j); 

     if (pal1.equals(pal2)) 
      System.out.println("The numbers you entered is a palindrome."); 
     else 
      System.out.println("The numbers you entered is not a palindrome."); 
     } 
    } 
} 

Удачи вам в вашей лаборатории;)

Также что-то подобное может быть более эффективным:

boolean isPal(String input) { 
    // go through half the string length 
    for (int i = 0; i < input.length()/2; i++) { 
     // match first half to second half (regardless if odd or even) 
     // -1 because strings starta at a 0 index 
     if (input.charAt(i) != input.charAt(input.length() - 1 - i)) { 
      return false; 
     } 
    } 
    return true; 

} 
Смежные вопросы