Oldal: 3 / 5 ElsőElső 12345 UtolsóUtolsó
Eredmény: 21 - 30 (46) összesen

Téma: Java gyakorlás

  1. #21
    MinderBinder edem logója
    Csatlakozott
    09-09-02
    Hely
    Budapest
    Hozzászólás
    1.093
    Thanked 1 Time in 1 Post

    Alapbeállítás re: Java gyakorlás

    Idézet timewriter eredeti hozzászólása Hozzászólás megtekintése
    Kód:
    import java.io.*;
    import java.util.*;
    
    public class Program {
    
        public static void main(String[] args) throws IOException{
          
          InputStreamReader reader = new InputStreamReader(System.in);
          BufferedReader br = new BufferedReader(reader);
    
          System.out.println("Kérem adjon meg egy szöveget!");
          String text = br.readLine();
    
          Random rnd = new Random();
          int rndNum = rnd.nextInt(10) + 1;
          text = text + Integer.toString(rndNum);
    
          System.out.println("Az eredmény:");
          System.out.println(text);
        }
    }
    Ha valamit nem értessz kérdezz nyugodtan!
    Szerintem exception handlinget már main-ban le kellene kezelni és nem eldobni, ha felmerül:

    Kód:
    try {
    // kód
    } catch (IOException e) {
       e.printStackTrace();
    }
    Ezen kívül a String tartalma nem változtatható, ha a "+" operátorral
    hozzáfűzől valamit, akkor igazából egy új String objektumot
    példányosítasz, tehát javasolt a StringBuffer-t használni, ami
    gyorsabb:

    Kód:
     StringBuffer str = new StringBuffer ("szoveged");
     str.append("tovabbi szoveg");
    amit a végén String-gé tudsz alakítani:

    Kód:
     String myString = str.toString();



    // Only illogics can find
    // hidden flaws in a straight logic line

  2. #22
    Új tag
    Csatlakozott
    11-10-22
    Hely
    Debrecen
    Hozzászólás
    1
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Java gyakorlás

    Idézet edem eredeti hozzászólása Hozzászólás megtekintése
    Ezen kívül a String tartalma nem változtatható, ha a "+" operátorral
    hozzáfűzől valamit, akkor igazából egy új String objektumot
    példányosítasz, tehát javasolt a StringBuffer-t használni, ami
    gyorsabb:

    Kód:
     StringBuffer str = new StringBuffer ("szoveged");
     str.append("tovabbi szoveg");
    amit a végén String-gé tudsz alakítani:

    Kód:
     String myString = str.toString();
    Miért is lesz ez így gyorsabb?



  3. #23
    MinderBinder edem logója
    Csatlakozott
    09-09-02
    Hely
    Budapest
    Hozzászólás
    1.093
    Thanked 1 Time in 1 Post

    Alapbeállítás re: Java gyakorlás

    Röviden azért, mert egy metódus hívás olcsóbb, mint egy osztály példányosítása. Ha nem hiszed, akkor nézz utána a java dokumentációjában, hogy miért használják a StringBuffer-t.



  4. #24
    Törzsvendég zistvan logója
    Csatlakozott
    11-05-06
    Hozzászólás
    112
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Java gyakorlás

    Ha már nagyon belemegyünk, akkor inkább a StringBuilder ajánlott, mert az nem szálbiztos, és valamivel gyorsabb.

    De, ha csak egy ilyet írsz:

    Kód:
    String s = "sor_1\n" +
                  "sor_2\n" +
                  "sor_3\n";
    Itt nem kell StringBuilder, mert a fordító ebből simán egy Stringet készít.

    Valamint itt sem kell:
    Kód:
    System.out.println("a: " + a + ", b: " + b);
    , mert ebből ez lesz a fordítás után:

    Kód:
    System.out.println(new StringBuilder().append("a: ").append(a).append(", b: ").append(b).toString());
    Szóval feleslegesen nem kell erőlködni.

    Ahol igazán számít, az pl. egy cikluson belül, mert ott nem tudja kitalálni a fordító, hogy mit is akarsz valójában.

    Ehelyett

    Kód:
                String s = "";
    		
    		for(int i = 0; i < 10; ++i){
    			s += "txt";
    		}
    legyen mindig

    Kód:
                StringBuilder sb = new StringBuilder();
    		
    		for(int i = 0; i < 10; ++i){
    			sb.append("txt");
    		}



    Utoljára módosítva: zistvan által : 2011-10-24 14:35 Oka: Kiegészítés

  5. #25
    MinderBinder edem logója
    Csatlakozott
    09-09-02
    Hely
    Budapest
    Hozzászólás
    1.093
    Thanked 1 Time in 1 Post

    Alapbeállítás re: Java gyakorlás

    Okoskodni én is tudok. Mivel fentebb nem volt konkrét szituáció, ezért írtam, amit írtam. Jobb magad használni a StringBuilder-t és megszokni, mithogy String-eket fűzögess össze ciklusban.



  6. #26
    Törzsvendég zistvan logója
    Csatlakozott
    11-05-06
    Hozzászólás
    112
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Java gyakorlás

    Az más kérdés, hogy amit írtam, abban semmi okoskodás nem volt, csak én is válaszoltam neki.



  7. #27
    Új tag
    Csatlakozott
    15-01-13
    Hozzászólás
    3
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Java gyakorlás

    Sziasztok

    Nekem az lenne a problémám, hogy szeretnék random számot generálni (ez idáig oké), de nem akarom, hogy ismétlődjenek. Azt akarom, hogy akár 20 számot sorsoljak, úgy hogy véletlenül se legyen egyezést kettő között. Ez rengeted változóval megtudtam oldani, de egyszerűen nem tudtam. Remélem valaki tud nekem ebben segíteni.

    Néztem már fórumokat is és nem láttam olyan megoldást ami tetszett volna, illetve értettem volna pontosan, hogyan is érti az illető.

    Remélem valaki tud segíteni.

    Előre is köszönöm.



  8. #28
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.749
    Begyűjtött 1.432 köszönetet
    895 hozzászólásával

    Alapbeállítás re: Java gyakorlás

    Idézet Wurgar eredeti hozzászólása Hozzászólás megtekintése
    Remélem valaki tud segíteni.

    Előre is köszönöm.
    En Javaban nem nagyon vagyok otthon, de ruby-val ez faek egyszeru:
    Kód:
    (1..100).to_a.sample(20)
    Ez 1 es 100 kozotti tartomanybol szed 20 random elemet.



  9. #29
    Bölcs
    Csatlakozott
    10-01-15
    Hely
    Győr
    Hozzászólás
    589
    Begyűjtött 32 köszönetet
    30 hozzászólásával

    Alapbeállítás re: Java gyakorlás

    Idézet Geri eredeti hozzászólása Hozzászólás megtekintése
    En Javaban nem nagyon vagyok otthon, de ruby-val ez faek egyszeru:
    Kód:
    (1..100).to_a.sample(20)
    Ez 1 es 100 kozotti tartomanybol szed 20 random elemet.
    Neki fontos ,hogy 2x ne szerepeljen benne ugyan az a szám.

    Idézet Wurgar eredeti hozzászólása Hozzászólás megtekintése
    Sziasztok

    Nekem az lenne a problémám, hogy szeretnék random számot generálni (ez idáig oké), de nem akarom, hogy ismétlődjenek. Azt akarom, hogy akár 20 számot sorsoljak, úgy hogy véletlenül se legyen egyezést kettő között. Ez rengeted változóval megtudtam oldani, de egyszerűen nem tudtam. Remélem valaki tud nekem ebben segíteni.

    Néztem már fórumokat is és nem láttam olyan megoldást ami tetszett volna, illetve értettem volna pontosan, hogyan is érti az illető.

    Remélem valaki tud segíteni.

    Előre is köszönöm.
    Kód:
        public int[] veletlen(int min,int max,int db){
            int randNum;
            int[] tomb = new int[db];
                for(int i=0;i!=db;i++)
                {
                    do{randNum = (int)(min + (int)(Math.random()*max));}
                    while(Arrays.asList(tomb).equals(randNum));
                    tomb[i] = randNum;
                }
            return tomb;
        }



    Utoljára módosítva: dragon1993 által : 2015-01-13 19:28

  10. #30
    Bölcs earnnet logója
    Csatlakozott
    12-08-15
    Hely
    Budapest
    Hozzászólás
    1.820
    Begyűjtött 812 köszönetet
    576 hozzászólásával

    Alapbeállítás re: Java gyakorlás


    public int[] veletlen(int min,int max,int db){ int randNum; int[] tomb = new int[db]; for(int i=0;i!=db;i++) { do{randNum = (int)(min + (int)(Math.random()*max));} while(Arrays.asList(tomb).equals(randNum)); tomb[i] = randNum; } return tomb;
    OFF: Szép nyelv ez a Java. Kicsit a géptermi ZH-kat idézi, amikor 2 perced maradt az utolsó 5 feladatra.



A téma címkéi:

Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •