problem z tabela i odwolaniem

0

Witam!
Jestem nowy na forum i w świecie Javy [green] - przedtem uczylem sie C++...
Chciałem napisac program ktory wyciagnie z podanego wcześniej pesla, date urodzenia i ja wypisze... W C++ nie bylo z tym wiekszego problemu - zrobilem to na tabeli, tak samo chciałem zrobic w Javie, ale z mizernymi skutkami:

import java.io.*;

public class zad1 {
public static void main(String args[]) throws IOException
{
double tablica[] =new double[11];
String s;
System.out.println("Podaj swoj numer PESEL");
BufferedReader we=new BufferedReader(new InputStreamReader(System.in));
s=we.readLine();
tablica=Double.parseDouble(s);
System.out.println("Oto twoj pesel: " + s);
System.out.println("Rok urodzenia: 19"+tablica[1]+""+tablica[2]);
}
}

wyswietla mi sie błąd:
"multiple markers at this line"

w linijce:

tablica=Double.parseDouble(s);

będe bardzo wdzieczny za pomoc - pozdrawiam!

0

Po pierwsze formatuj kod, aby byl czytelny.

Double.parseDouble(s) jak nazwa sugeruje zwraca double, wiec nie mozesz tego przypisac do tablicy.
poza tym pesel to liczba naturalna, wiec uzyc mozna int zamiast double.

zatem aby otrzymac pesel, to musisz zrobic

int pesel = Integer.parseInteger(s);

A jesli chcesz liczbe skladajaca sie z 2 pierwszych cyfr, to albo podziel liczbe odpowiednio, albo ze stringa s wyciagnij substring dlugosci 2.

W tytule napisales "tablica statyczna" a w kodzie nie masz zadnej tablicy statycznej.

0
Luno napisał(a)

Po pierwsze formatuj kod, aby byl czytelny.

Double.parseDouble(s) jak nazwa sugeruje zwraca double, wiec nie mozesz tego przypisac do tablicy.
poza tym pesel to liczba naturalna, wiec uzyc mozna int zamiast double.

zatem aby otrzymac pesel, to musisz zrobic

int pesel = Integer.parseInteger(s);

A jesli chcesz liczbe skladajaca sie z 2 pierwszych cyfr, to albo podziel liczbe odpowiednio, albo ze stringa s wyciagnij substring dlugosci 2.

W tytule napisales "tablica statyczna" a w kodzie nie masz zadnej tablicy statycznej.

bardzo dziekuje za pomoc - wziolem sobie rade do serca ;-P
ale mam nastepny problem - nie wiem jak moge dokonczyc ta instrukcje switch... :/
java jest troche irytujaca - ale podoba mi sie :-)

import java.io.*;
public class zad1{
	
	static int s;
	s=Integer.parseInt(substring2);
	int miesiac(s)
	{
    	switch (s)
		    {
		    case 01:
		        System.out.println("styczen");
		        break;
		    case 02:
		        System.out.println("luty");
		        break;
		    case 03:
		        System.out.println("marzec");
		        break;
		    case 04:
		       System.out.println("kwiecien");
		       break;
		    case 05:
		        System.out.println("maj");
		        break;
		    case 06:
		        System.out.println("czerwiec");
		        break;
		    case 07:
		        System.out.println("lipiec");
		        break;
		    case 8:
		        System.out.println("sierpien");
		        break;
		    case 9:
		        System.out.println("wrzesien");
		        break;
		    case 10:
		    	System.out.println("pazdziernik");
		      break;
		    case 11:
		    	System.out.println("listopad");
		      break;
		    case 12:
		    	System.out.println("grudzien");
		      break;
		    default:
		      System.out.println("Nie ma takiego miesiąca");
		    }
	}	
	public static void main(String[] args)throws IOException
    {
    	String string;
    	System.out.println("Podaj swoj pesel");
    	System.out.println(" ");
    	BufferedReader a=new BufferedReader(new InputStreamReader(System.in));
    	string = a.readLine();
    	
    	System.out.println("Twój pesel to : " + string);
        String substring = string.substring(1);
        substring = string.substring(0,2);
        String substring2 = string.substring(1);
        substring2 = string.substring(2,4);
        String substring3 = string.substring(1);
        substring3 = string.substring(4,6);

        
        System.out.println("Klient urodził się: "+substring3+" "+miesiac(s)+" 19"+substring+"r. ");
    }
}

oto kod błędu dla :

System.out.println("Klient urodził się: "+substring3+" "+miesiac(s)+" 19"+substring+"r. ");
The method miesiac() in the type zad1 is not applicable for the arguments (int)

będe bardzo wdzieczny za pomoc i mam jeszcze pytanie:
czy da sie i jesli tak, to jak wyswietlic wynik okienkach a nie w konsoli...

0

Kod który zamieściłeś jest całkowicie błędny. Podczas kompilacji musisz widzieć inne komunikaty błedów niż

The method miesiac() in the type zad1 is not applicable for the arguments (int)
.
Możesz wyswietlić wynik w okienku

 JOptionPane.showMessageDialog(null,komunikat);

ale moim zdaniem nie należy tak robić: albo robisz program "okienkowy" - użytkownik wprowadza dane i oględa wyniki w okienkach, albo konsolowy - użytkownik wprowadza dane i oglada dane na konsoli.

0
bogdans napisał(a)

Możesz wyswietlić wynik w okienku

 JOptionPane.showMessageDialog(null,komunikat);

ale moim zdaniem nie należy tak robić: albo robisz program "okienkowy" - użytkownik wprowadza dane i oględa wyniki w okienkach, albo konsolowy - użytkownik wprowadza dane i oglada dane na konsoli.

ok - wielkie dzieki !

bogdans napisał(a)

Kod który zamieściłeś jest całkowicie błędny. Podczas kompilacji musisz widzieć inne komunikaty błedów niż

The method miesiac() in the type zad1 is not applicable for the arguments (int)

ok, racja, moj błąd, juz podaje:

Multiple markers at this line
	- Syntax error on token ";", , expected
	- Watchpoint:zad1 [access and 
	 modification] - s

to błąd dla:

static int s;

a to błąd:

Multiple markers at this line
	- s cannot be resolved to a type
	- Syntax error on token "s", VariableDeclaratorId expected after 

po:

int miesiac(s)

będe wdzieczny za pomoc

0
import java.io.*;
public class zad1
{
        private static String miesiac(String s)
        {
            int month=Integer.parseInt(s);
            switch (month)
            {
                    case 01:
                        return "stycznia";
                    case 02:
                        return "lutego";
                    case 03:
                        return "marca";
                    case 04:
                       return "kwietnia";
                    case 05:
                        return "maja";
                    case 06:
                        return "czerwca";
                    case 07:
                        return "lipca";
                    case 8:
                        return "sierpnia";
                    case 9:
                        return "wrzesnia";
                    case 10:
                        return "pazdziernika";
                    case 11:
                        return "listopada";
                    case 12:
                        return "grudnia";
                    default:
                        return "Nie ma takiego miesiąca";
            }
    }
    public static void main(String[] args)throws IOException
    {
        String string;
        System.out.println("Podaj swoj pesel");
        System.out.println(" ");
        BufferedReader a=new BufferedReader(new InputStreamReader(System.in));
        string = a.readLine();

        System.out.println("Twój pesel: " + string);
        String rok = string.substring(0,2);
        String dzien = string.substring(4,6);

        System.out.println("Dzien twoich urodzin: "+dzien+" "+miesiac(string.substring(2,4))+" 19"+rok);
    }
}
0

olbrzymie THX!! jestescie master's - wymiatacie !! [browar]

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