Java - problem z pobieraniem znaków

0

Witam,

Jestem dość początkującym programistą.
Mam za zadanie napisanie programu zamieniającego czas brytyjski (AM, PM) na polski lub odwrotnie. Problem w tym, że nie wiem jak wczytać do programu wybór użytkownika (znak B dla czasu brytyjskiego, P dla polskiego) tz. nie wiem jak wczytać ten znak do programu.

Program się kompiluje, ale nie rozpoznaje wybranych mozliwości tylko od razu przechodzi do else'a i wyświetla błąd wyboru.

Oto program:

import java.util.*;
public class Lab5_4 {
  public static void main(String[] args) {
  	
 	String czas;
	String am;
  	int godzina;
	int minuta;
	
  
  	
  	Scanner sc=new Scanner(System.in);
  	System.out.print("Podaj system, w jakim podasz czas (B- brytyjski, P- polski): ");
  	czas=sc.next;
	
	if (czas=="B"){

	System.out.print("Podaj godzine: ");
  	godzina=sc.nextInt();

	System.out.print("Podaj minuty: ");
  	minuta=sc.nextInt();

	System.out.print("Podaj czy AM czy PM: ");
  	am=sc.next();

		if (am=="AM"){

		System.out.print("Twoja godzina to:");
		System.out.print(godzina);
		System.out.print(":");
		System.out.println(minuta);
		
		}
		else{
			if(am=="PM"){
			System.out.print("Twoja godzina to:");
			System.out.print(godzina+12);
			System.out.print(":");
			System.out.println(minuta);

			}

			System.out.println("Podales zly system!");

			}
	
			}
  	
  	else{
		if (czas=="P"){

	System.out.print("Podaj godzine: ");
  	godzina=sc.nextInt();

	System.out.print("Podaj minuty: ");
  	minuta=sc.nextInt();


		if (godzina>12){

		System.out.print("Twoja godzina to:");
		System.out.print(godzina-12);
		System.out.print(":");
		System.out.print(minuta);
		System.out.println(" PM");
		}
		else{
		
			System.out.print("Twoja godzina to:");
			System.out.print(godzina);
			System.out.print(":");
			System.out.println(minuta);
			System.out.println(" AM");

			}

	
			}
		else{
		System.out.println("Blad");

		}
			}

			
			

  	}
  }

Ma ktoś pomysł co robie źle ?
Będe wdzięczny za pomoc,
pzdr

0

a=="P" porównuje referencje Stringów a nie ich zawartość. Zawartość porównuje się tak:

if(a.equals("P"))
 ...
//jeżeli jest Ci obojętna wielkość liter, to
if(a.equalsIgnoreCase("P"))
 ...
0

Działa. Wielkie dzięki ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1