Проблема возникла со словами после знака присвоения.
public class RandomPhrase {
public static void main(String[] args) {
// создаём три списка слов
String[] list1 = {"чебурек", "дятел", "унитаз", "Шуня", "мясник", "пчела", "китаец"};
String[] list2 = {"рубит", "строит", "готовит", "учит", "носит"};
String[] list3 = {"мясо", "жука", "мыло", "домашку", "человека"};
// определяем кол-во слов в массиве
int Lenght1 = list1.lenght;
int Lenght2 = list2.lenght;
int Lenght3 = list3.lenght;
// генерируем рандомное число
int rand1 = (int) (Math.random() * Lenght1);
int rand2 = (int) (Math.random() * Lenght2);
int rand3 = (int) (Math.random() * Lenght3);
// строим фразу
String phrase = list1[rand1] + " " + list2[rand2] + " " + list3[rand3];
// выводим фразу
System.out.println(phrase);
}
}
Неправильное название свойства длины массива. У Вас lenght
, а надо length
public class RandomPhrase {
public static void main(String[] args) {
// создаём три списка слов
String[] list1 = {"чебурек", "дятел", "унитаз", "Шуня", "мясник", "пчела", "китаец"};
String[] list2 = {"рубит", "строит", "готовит", "учит", "носит"};
String[] list3 = {"мясо", "жука", "мыло", "домашку", "человека"};
// определяем кол-во слов в массиве
int Lenght1 = list1.length;
int Lenght2 = list2.length;
int Lenght3 = list3.length;
// генерируем рандомное число
int rand1 = (int) (Math.random() * Lenght1);
int rand2 = (int) (Math.random() * Lenght2);
int rand3 = (int) (Math.random() * Lenght3);
// строим фразу
String phrase = list1[rand1] + " " + list2[rand2] + " " + list3[rand3];
// выводим фразу
System.out.println(phrase);
}
}
Я,разумеется, понимаю, что опечатка в lenght - корень зла, но, как по мне, это наименьшая из проблем данного кода. А наибольшая проблема - процедурный подход и очень плохая расширяемость. Предалагаю старое-доброе ООП и немного функционалки :
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class RandomPhrase {
private final List<String[]> phraseList;
public RandomPhrase(){
this.phraseList = new ArrayList<>();
}
public RandomPhrase addPhrases(String...phrase){
phraseList.add(phrase);
return this;
}
public String createPhrase(){
return phraseList.stream()
.map(arr->arr[(int)(Math.random()*arr.length)])
.collect(Collectors.joining(" "));
}
}
public class Main {
public static void main(String[] args) {
RandomPhrase randomPhrase = new RandomPhrase()
.addPhrases("чебурек", "дятел", "унитаз", "Шуня", "мясник", "пчела", "китаец")
.addPhrases("рубит", "строит", "готовит", "учит", "носит");
System.out.println(randomPhrase.createPhrase());
System.out.println(randomPhrase.createPhrase());
System.out.println("************************************************");
randomPhrase.addPhrases("мясо", "жука", "мыло", "домашку", "человека");
System.out.println(randomPhrase.createPhrase());
System.out.println(randomPhrase.createPhrase());
}
}
В методе main создаем экземпляр класса RandomPhrase и зразу же добавляем 2 массива слов. После чего дважды генерируем фразу (пока из 2 слов, потому сто добавили только 2 масиива). Добавляем еще один массив и генерируем 2 фразы снова, теперь получаем фразы из 3 слов.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Программно создаю кнопки, но недавно понадобилось делать отступ вниз от каждой кнопкиЯ так понял надо задать layout_marginbottom
товарищиОбъясните, кто нибудь, какой JDK нужен сейчас, для разработки под Android? В интернетах у каждого свое мнение