Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: Вопрос к любителям Java
Решил посмотреть как же работает длинка в Java, но тут проблема: как вводить числа? Интересует именно "быстрый" ввод. Говорят, что кошерно это делать через StreamTokenizer и BufferedReader. Можно ли пару примеров от знатоков ввода таким образом int, double, string, BigInteger, BigDecimal?

1
  1  Ким Вячеслав Олегович, 11 мая 2011 г. 17:21:40
      Давно я не заглядывал сюда. Смотрю, Ладик Артем написал тоже, что пишут многие олимпиадники на Ява. Тоесть бафферед ридер + токенайзер. Спасибо еще раз.
  2  Маяцкий Алексей, 09 мая 2011 г. 0:05:40
      "знатоков ввода" - на полу.
  3  Ладик Артём, 06 мая 2011 г. 15:50:33
      еще и sc.nextLine() есть =)
  4  Ладик Артём, 06 мая 2011 г. 15:49:36
      Надеюсь поможет... я этот класс когда-то юзал
  5  Ладик Артём, 06 мая 2011 г. 15:49:05
      FastScanner sc = new FastScanner("Input.txt");
PrintWriter pw = new PrintWriter("Output.txt");
.............
sc.nextInt();
sc.nextLong();
sc.nextDouble();
  6  Ладик Артём, 06 мая 2011 г. 15:47:39
      class FastScanner{
private BufferedReader bufferedReader = null;
private StringTokenizer stringTokenizer = null;
private boolean EOF = false;

public FastScanner(InputStream stream) {
bufferedReader = new BufferedReader(new InputStreamReader(stream));
}

public FastScanner(String fileName) throws FileNotFoundException {
bufferedReader = new BufferedReader(new FileReader(fileName));
}

private String GetValue(){
while(stringTokenizer == null || !stringTokenizer.hasMoreTokens())
try{
stringTokenizer = new StringTokenizer(bufferedReader.readLine());
} catch (Exception e) {
EOF = true;
break;
}
return EOF ? "-1" : stringTokenizer.nextToken();
}

public String nextLine() throws IOException{
stringTokenizer = null;
return bufferedReader.readLine();
}

public int nextInt(){
return Integer.parseInt(GetValue());
}

public long nextLong(){
return Long.parseLong(GetValue());
}

public double nextDouble(){
return Double.parseDouble(GetValue());
}
}
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru