“Философия java” [требует правки]

311
10 августа 2017, 21:57

В книге "Философия java" Брюса Эккеля, в теме "Интерфейсы как средство адаптации" есть пример с паттерном "адаптер" для генерации вещественных чисел, не вывода результата в консоль. Прошу помочь в решении проблемы, просто я новичок.

 package com.lala.blabla;
 import java.util.Random;
 public interface rand_vals {
 Random rand = new Random (47);
 int random_int = rand.nextInt(10);
 double random_douvle = rand.nextDouble()*10;
 long random_long = rand.nextLong()*10;
 float random_float = rand.nextFloat()*10;}
package com.lala.blabla;
import java.nio.CharBuffer;
import java.util.Scanner;
public class adapter_random_doubles extends random_doubles implements 
Readable {
private int count;
public adapter_random_doubles(int count)
{this.count = count;}
public int read (CharBuffer rd)
{
    if (count-- == 0)
   return -1;
    String result = Double.toString(next())+" ";
    rd.append(result);
    return result.length();
}
public static void main(String [] args)
{
    Scanner s = new Scanner(new adapter_random_doubles(7));
    if (s.hasNextDouble()){
    System.out.println(s.nextDouble()+" ");}}}

   package com.lala.blabla;
  import java.util.*;
  import java.nio.*;
  public class random_doubles {
  private static Random rand = new Random (47);
  public double next() {return rand.nextDouble();}
  public static void main (String [] args)
   {
    random_doubles rd = new random_doubles();
    for (int i = 0; i < 7; i++)
        System.out.println(rd.next()+" ");
       }}
Answer 1
while (s.hasNextDouble()){
    System.out.print(s.nextDouble()+ " ");
}

Команда s.hasNextDouble() проверяет, является следующее введенное пользователем значение дробным числом. Команда s.nextDouble() требует ввести дробное число.

В итоге вы проверяете, ввел ли пользователь дробное число еще до того, как пользователю будет дана такая возможность. Естественно получается false и программа не выполняет этот цикл.

Как решение можно запрашивать строку и проверять, является она дробью или нет:

Scanner s = new Scanner(System.in);
String str = s.nextLine();
Double d = Double.parseDouble();
while (d != null){
    System.out.print(d+ " ");
    str = s.nextLine();
    d = Double.parseDouble();
}
READ ALSO
Вызывается неправильный метод

Вызывается неправильный метод

В приложении на Android когда в фрагменте JournalFragment вызываешь контекстное меню у ListView lvJournal и выбераешь пункт Return преложение вызывает метод из фрагмента...

481
Запуск скрипта при выполнении условий [требует правки]

Запуск скрипта при выполнении условий [требует правки]

Как сделать, чтобы, если в поле на html страничке ввели правильный текст и нажали кнопку, то запускается скрипт? Хелп >~<

328
Ошибка валидатора &#171;The frameborder attribute on the iframe element is obsolete. Use CSS instead&#187;

Ошибка валидатора «The frameborder attribute on the iframe element is obsolete. Use CSS instead»

Есть сайт на wordpress, в котором установлена контактная форма contact form 7 с модулем внутри папки recaptchaphp, где есть такой код:

490
Периодически не отображается favicon

Периодически не отображается favicon

Почему-то на сайте на хостинге иногда не отображается фавиконПрикол в том, что это происходит периодически - раз отображается, в следующий...

401