Diskuze: Generování náhodného stringu

Java Java Generování náhodného stringu

Avatar
tbartolen
Člen
Avatar
tbartolen:

Ahoj, snažím se udělat část programu, který by mi generoval náhodný string a ukladal ho do pole.

public class uloha_2 {

        public static void main(String[] args) {
                String [] pole = new String [100];
                for  (int i=0; i<100; i++) {

                }


        }

}

Jak bych měl vymyslet generování náhodných znaků o délce 3 do meho pole "pole" ...?

JE mi jasný, že bych měl nejdřív deklarovat možné znaky, které muže použít,

String znaky = new String {"q","w","e","r","t","z","u","i","o","p","l","k","j","h","j","f"};

A z toho nějak načítat znaky náhodně do mého pole...má na to java nějaký zjednodušovák? NEbo jak bych to měl cca dělat? Díky za radu

Editováno 25. února 10:35
Odpovědět 25. února 10:33
Navštiv www.fb.com/skkelticz
Avatar
tbartolen
Člen
Avatar
tbartolen:

update
Takže mi jde vzásadě o to, jak náhodný hodnot z jednoho pole přepsat do pole druhýho...

public class uloha_2 {

        public static void main(String[] args) {
                String[] znaky = {"q","w","e","r","t","z","u","i","o","p","l","k","j","h","j","f"};
                String [] pole = new String [100];
                for  (int i=0; i<100; i++) {

                }




        }

}
Nahoru Odpovědět 25. února 10:48
Navštiv www.fb.com/skkelticz
Avatar
tbartolen
Člen
Avatar
tbartolen:

a když chci načítat do konzole přímo z konzole přes scanner?

public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                String nacteni = sc.nextLine();
                String [] pole = new String [100];
                int [] nactenii = new int[100];
                for  (int i=0; i<100; i++) {
                        nactenii = Integer.parseInt(nactenii);sc.nextLine();
                }

Tak mi to hází nějakou chybu :(

Nahoru Odpovědět 25. února 11:28
Navštiv www.fb.com/skkelticz
Avatar
Tomáš Brůna
Redaktor
Avatar
Odpovídá na tbartolen
Tomáš Brůna:

chyba ke tady

nactenii = Integer.parseInt(nactenii);sc.nextLine();

nevim co to má být ale do pole můsíš ukládat takto:

pole[ index ] = cislo;

pokud chces do pole dosadit hodnotu z jineho pole, tak takto:

pole[ index ] = druhePole[index];
Nahoru Odpovědět 25. února 11:49
Lepší být šprt než blbec :)
Avatar
tbartolen
Člen
Avatar
Odpovídá na Tomáš Brůna
tbartolen:

a co když chci do pole zadat String, to nemužu?

Nahoru Odpovědět 25. února 11:52
Navštiv www.fb.com/skkelticz
Avatar
Tomáš Brůna
Redaktor
Avatar
Odpovídá na tbartolen
Tomáš Brůna:

do pole "intů" nemůžeš zadat String, pokud chceš pole znaků (textů) tak ho vytvoříš takto:

String[] pole = {"prvniString", "druhý string", "atd...."};

za chvilku sem zkusim něco hodit

Nahoru Odpovědět 25. února 11:58
Lepší být šprt než blbec :)
Avatar
tbartolen
Člen
Avatar
Odpovídá na Tomáš Brůna
tbartolen:

Dobře a pokud bych chtěl do pole sstringu načítat stringy přmo z konzole, šlo by to napsat takhle?

String [] retezec = sc.nextLine();

...? Diky

Nahoru Odpovědět 25. února 12:02
Navštiv www.fb.com/skkelticz
Avatar
Tomáš Brůna
Redaktor
Avatar
Tomáš Brůna:

ne nešlo
teď mi dochází že pole Stringů můžeš vytvořit tak jak jsem psal, nebo takto:

String[] asd = new String[10];

text ze vstupu bych do něj tedy ukládal takto:

String[] pole = new String[10];
pole[0] = sc.nextLine();
Nahoru Odpovědět 25. února 12:08
Lepší být šprt než blbec :)
Avatar
Tomáš Brůna
Redaktor
Avatar
Tomáš Brůna:

Jinak na to jak jsi psal v tom prvním příspěvku:

String znaky = new String {"q","w","e","r","t","z","u","i","o","p","l","k","j","h","j","f"};

na vytvoření pole např. s abecedou rád používám tento způsob:

String znaky = "abcdefghijklmnopqrstuvwxyz";
String[] pole = znaky.Split("");
Nahoru Odpovědět 25. února 12:10
Lepší být šprt než blbec :)
Avatar
tbartolen
Člen
Avatar
Odpovídá na Tomáš Brůna
tbartolen:

Ok a takto ? Ted mi to povolí napsat pouze dva retezce a ukončí se, nevím moc proč...

import java.util.Arrays;
import java.util.Scanner;
public class uloha_2 {

        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.print("Napište libovolný řetězec. Bude uložen do pole. Pro vypsání řetězce stiskněte **");
                String [] retezec = new String [100];
                retezec [0] = sc.nextLine();
                String a = sc.nextLine();
                String b = "**";
                if (a==b)
                        System.out.print(retezec);







        }


}

Neměl bych tam mít ještě někde for?

Editováno 25. února 12:18
Nahoru Odpovědět 25. února 12:17
Navštiv www.fb.com/skkelticz
Avatar
Tomáš Brůna
Redaktor
Avatar
Odpovídá na tbartolen
Tomáš Brůna:

promiň trochu z toho nechápu co to má dělat

Nahoru Odpovědět 25. února 12:21
Lepší být šprt než blbec :)
Avatar
tbartolen
Člen
Avatar
Odpovídá na Tomáš Brůna
tbartolen:

program bude načítat řetězce do pole. Řetězec " ** " bude ukončovat načítání. Po ukončení načítání (řetězcem ** ) program automaticky zobrazí načtené řetězce v řádku oddělené čárkou a mezerou.

Nahoru Odpovědět 25. února 12:26
Navštiv www.fb.com/skkelticz
Avatar
Tomáš Brůna
Redaktor
Avatar
Odpovídá na tbartolen
Tomáš Brůna:

zkusil jsem to trochu přepsat

System.out.println("Napište libovolný řetězec. Bude uložen do pole. Pro vypsání řetězce stiskněte **");
                String[] retezec = new String [100];

                String vstup;
                int index = 0;
                do
                {
                 vstup = sc.nextLine();
                 retezec[index] = vstup;
                 index++;
                }
                while(!vstup.equals("**"));

                for (int i = 0; i < retezec.length; i++)
                {
                    System.out.println(retezec[i]);
                }

zkus se naučit používat ArrayList, jedna z jeho výhod je ta že nemusíš předem definovat jeho velikost

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 25. února 12:34
Lepší být šprt než blbec :)
Avatar
tbartolen
Člen
Avatar
Nahoru Odpovědět 25. února 12:36
Navštiv www.fb.com/skkelticz
Avatar
Tomáš Brůna
Redaktor
Avatar
Nahoru Odpovědět 25. února 12:37
Lepší být šprt než blbec :)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 15 zpráv z 15.