Problem z typem danych

0

Witam,

Probuje napisac skrypt, ktory bedzie pytal sie o liczbe i dostawial koncowke liczby porzadkowej (np. 1-szy, 2-gi). Wymyslilam sobie, ze fajnie by bylo, zeby program sprawdzal ostatnia cyfre i na tej podstawie okreslal koncowke. Napisalam cos takiego:

public static String c = Integer.toString(1234567890);

public static void main(String[] args) {
	    int i = Integer.parseInt(JOptionPane.showInputDialog("Liczba"));
	      if (i.endsWith(c))
	        System.out.println(i + "-szy");

ale pojawia sie blad Cannot invoke endsWith(String) on the primitive type int . Prosilabym o wskazowki, jak pozbyc sie bledu (albo jaka inna metode zastosowac).

0

Wygodny sposob na pozyskanie ostatniej cyfry danej liczby (nie wiem tylko czy wydajny):

int iLiczba = 12345678;

int iOstatniaCyfra;
iOstatniaCyfra = iLiczba % 10;

i przyklad:

public class Test
	{
	public static void main(String[] args)
		{
		int iLiczba = 12345678;

		int iOstatniaCyfra;
		iOstatniaCyfra = iLiczba % 10;
		
		switch (iOstatniaCyfra)
			{
			case 1:
				System.out.println("" + iLiczba + "-szy");
				break;
			case 2:
				System.out.println("" + iLiczba + "-gi");
				break;
			case 3:
				System.out.println("" + iLiczba + "-ci");
				break;
			case 4:
			case 5:
			case 6:
			case 9:
			case 0:
				System.out.println("" + iLiczba + "-ty");
				break;
			case 7:
			case 8:
				System.out.println("" + iLiczba + "-my");
				break;
			}
		}
	}

EDIT***
Sprawdzilem metode endsWith i jest ona dostepna dla obiektow typu string, czyli w zasadzie nie musisz konwertowac wprowadzonych danych do int'a, tylko mozesz ja zastosowac bezposrednio na danych typu string.

0

Dzieki wielkie, pobawilam sie troche i dziala. Teraz musze tylko wymyslic co zrobic z liczbami 11-19 :-)

0

Najlatwiej to po prostu dac warunek czy liczba jest z przedzialu 11-19. Jesli tak to robisz switch'a i koncowki odpowiednie.

0

@VGT, moim zdaniem konwersja wprowadzonego ciągu na int jest konieczna, można przy okazji sprawdzić czy to wpisane jest w ogóle liczbą, można też łatwo sprawdzić czy wpisana liczba wpada do jednego z przedziałów [11;19] [-19;-11].
@pasterka, musisz jeszcze w sposób specjalny potraktować liczbę 0.

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