• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Losowanie wybranych liter JAVA

VPS Starter Arubacloud
0 głosów
3,681 wizyt
pytanie zadane 2 maja 2018 w Java przez NikaZuza Nowicjusz (180 p.)

Mam problem ze stworzeniem generatora wybranych liter. Na razie znalazłam coś takiego i nie wiem jak zrobić żeby losowało mi tylko litery A,G,C,T

import java.util.Random;

public class Zadanie4 {

    public static void main(String[] args) {
        System.out.println(randomString(5));
    }
    public static String randomString(int n)
    {
        char[] bazowe = new char[n];

        for (int i = 0; i <n; i++)
        {
          bazowe[i] = (char) (((int)(Math.random() * 26)) + (int)'A');
        }

        return (new String(bazowe, 0, n);
    }
}

 

3 odpowiedzi

+2 głosów
odpowiedź 2 maja 2018 przez mbabane Szeryf (79,300 p.)

Maksymalnie prosto to chyba będzie tak:

Random random = new Random();

String[] letters = {"A", "G", "C", "T"};

for (int i = 0; i < 8; i++)
{
       int index = random.nextInt(letters.length);
       System.out.println(letters[index]);
}
+1 głos
odpowiedź 2 maja 2018 przez Aisekai Nałogowiec (42,190 p.)
A nie prościej zrobić (w tym przypadku) Stringa, będącego całym dopuszczalnym alfabetem (w tym przypadku AGCT) i losowac indeks, konkatenować chara o wylosowanym indeksie, z Stringiem który chcesz zwrócić?
komentarz 2 maja 2018 przez NikaZuza Nowicjusz (180 p.)

Jestem całkiem początkująca i nie do końca rozumiem o co chodzi wink

komentarz 2 maja 2018 przez Aisekai Nałogowiec (42,190 p.)
Tworzysz Stringa result = "" (albo StringBuildera, szybciej będzie tworzył rezultat). Tworzysz String alphabet =   "AGCT". Losujesz indeks od 0 do długość-1. Dodajesz do result alphabet[index]. To powtarzasz zadaną ilość razy. Na końcu zwracasz result.
komentarz 2 maja 2018 przez NikaZuza Nowicjusz (180 p.)
public static void main(String[] args) {
	}
	public static String DNA(int n) {
		Random random= new Random();
		String bazowa= " ";
		String zasady= "AGCT";
		for(int i=0; i<n; i++) {
			int m= random.nextInt(zasady.length()-1);
			bazowa[i]=zasady[m];
		}
		return bazowa;
	}

zrobiłam takie coś, i wyskakuje błąd przy bazowa[i], co robię źle?

komentarz 2 maja 2018 przez xenonso Mądrala (5,160 p.)
String w Java jest obiektem i nie można odwoływać się do poszczególnych znaków tak jak w C++. Użyj metody charAt(). Czyli coś w stylu bazowa.charAt(i).
+1 głos
odpowiedź 2 maja 2018 przez NikaZuza Nowicjusz (180 p.)
public static char[] DNA(int n, String zasady) {
        Random random= new Random();
        char [] bazowa= new char[n];
        for(int i=0; i<n; i++) {
            int m= random.nextInt(zasady.length());
            bazowa[i]=zasady.charAt(m);
        }
        return bazowa;
    }

zrobiłam coś takiego. Działa :P

komentarz 2 maja 2018 przez mbabane Szeryf (79,300 p.)

W sumie możesz od razu zrobić tak żeby zasady było też tablicą charów:

 public static char[] DNA(int n, char[] zasady) {
        Random random= new Random();
        char [] bazowa= new char[n];
        for(int i=0; i<n; i++) {
            int m= random.nextInt(zasady.length);
            bazowa[i]= zasady[m];
        }
        return bazowa;
    }
1
komentarz 2 maja 2018 przez NikaZuza Nowicjusz (180 p.)
Okej, dziękuję :)

Podobne pytania

–1 głos
2 odpowiedzi 539 wizyt
pytanie zadane 29 grudnia 2019 w Java przez kalendarmenn Obywatel (1,270 p.)
0 głosów
1 odpowiedź 286 wizyt
pytanie zadane 25 czerwca 2019 w Java przez MegaaSoft Obywatel (1,430 p.)
0 głosów
0 odpowiedzi 110 wizyt
pytanie zadane 20 maja 2019 w Java przez Roman1212 Początkujący (460 p.)

92,973 zapytań

141,937 odpowiedzi

321,176 komentarzy

62,301 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...