Heroku планировщик зима, летнее время [дубликат]

Если вы хотите быстро сканировать входные данные, не запутавшись в методе nextLine () класса Scanner, используйте для этого специальный сканер ввода.

Код:

class ScanReader {
/**
* @author Nikunj Khokhar
*/
    private byte[] buf = new byte[4 * 1024];
    private int index;
    private BufferedInputStream in;
    private int total;

    public ScanReader(InputStream inputStream) {
        in = new BufferedInputStream(inputStream);
    }

    private int scan() throws IOException {
        if (index >= total) {
            index = 0;
            total = in.read(buf);
            if (total <= 0) return -1;
        }
        return buf[index++];
    }
    public char scanChar(){
        int c=scan();
        while (isWhiteSpace(c))c=scan();
        return (char)c;
    }


    public int scanInt() throws IOException {
        int integer = 0;
        int n = scan();
        while (isWhiteSpace(n)) n = scan();
        int neg = 1;
        if (n == '-') {
            neg = -1;
            n = scan();
        }
        while (!isWhiteSpace(n)) {
            if (n >= '0' && n <= '9') {
                integer *= 10;
                integer += n - '0';
                n = scan();
            }
        }
        return neg * integer;
    }

    public String scanString() throws IOException {
        int c = scan();
        while (isWhiteSpace(c)) c = scan();
        StringBuilder res = new StringBuilder();
        do {
            res.appendCodePoint(c);
            c = scan();
        } while (!isWhiteSpace(c));
        return res.toString();
    }

    private boolean isWhiteSpace(int n) {
        if (n == ' ' || n == '\n' || n == '\r' || n == '\t' || n == -1) return true;
        else return false;
    }

    public long scanLong() throws IOException {
        long integer = 0;
        int n = scan();
        while (isWhiteSpace(n)) n = scan();
        int neg = 1;
        if (n == '-') {
            neg = -1;
            n = scan();
        }
        while (!isWhiteSpace(n)) {
            if (n >= '0' && n <= '9') {
                integer *= 10;
                integer += n - '0';
                n = scan();
            }
        }
        return neg * integer;
    }

    public void scanLong(long[] A) throws IOException {
        for (int i = 0; i < A.length; i++) A[i] = scanLong();
    }

    public void scanInt(int[] A) throws IOException {
        for (int i = 0; i < A.length; i++) A[i] = scanInt();
    }

    public double scanDouble() throws IOException {
        int c = scan();
        while (isWhiteSpace(c)) c = scan();
        int sgn = 1;
        if (c == '-') {
            sgn = -1;
            c = scan();
        }
        double res = 0;
        while (!isWhiteSpace(c) && c != '.') {
            if (c == 'e' || c == 'E') {
                return res * Math.pow(10, scanInt());
            }
            res *= 10;
            res += c - '0';
            c = scan();
        }
        if (c == '.') {
            c = scan();
            double m = 1;
            while (!isWhiteSpace(c)) {
                if (c == 'e' || c == 'E') {
                    return res * Math.pow(10, scanInt());
                }
                m /= 10;
                res += (c - '0') * m;
                c = scan();
            }
        }
        return res * sgn;
    }

}

Преимущества:

  • Сканирование Вход быстрее, чем BufferReader
  • Уменьшает сложность времени
  • Сбрасывает буфер для каждого следующего входа

Методы:

  • scanChar () - сканирование одиночного символа
  • scanInt () - scan Integer value
  • scanLong () - scan Длительное значение
  • scanString () - сканирование Строковое значение
  • scanDouble () - сканирование Двойное значение
  • scanInt (int [] array) - сканирует полный массив Array (Integer)
  • scanLong (long [] array) - сканирует полный массив (длинный)

Использование:

  1. Скопируйте данный код ниже вашего java-кода.
  2. Инициализировать объект для данного класса

ScanReader sc = new ScanReader(System.in); 3. Импортировать необходимые классы :

import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; 4. Выбросить IOException из вашего основного метода для обработки исключения 5. Использовать предоставленные методы. 6. Наслаждайтесь

Пример:

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
class Main{
    public static void main(String... as) throws IOException{
        ScanReader sc = new ScanReader(System.in);
        int a=sc.scanInt();
        System.out.println(a);
    }
}
class ScanReader....
0
задан Jonathan Leffler 8 September 2015 в 19:59
поделиться

2 ответа

Приложения Heroku работают в обычной системе unix, и у вас есть все файлы zoneinfo. Я также уверен, что они актуальны.

Что касается unix, вы можете установить Tv env var с чем-то вроде:

$ heroku config:set TZ=Europe/Berlin

Вы можете видеть действительные имена зоныinfo с помощью:

$ heroku run find /usr/share/zoneinfo/posix

Вообще говоря, вы хотите запустить приложение в среде UTC и обрабатывать часовые пояса внутри, возможно, обрабатывать локальное время на пользователь на основе пользователя.

Я подозреваю, что это может не полностью ответить на ваш вопрос. Возможно, вам захочется расширить то, что именно вы пытаетесь достичь, и как вы его пытаетесь достичь, а также то, как вы наблюдаете эффект «на час меньше, чем местный».

4
ответ дан kch 23 August 2018 в 22:40
поделиться
0
ответ дан mad 23 August 2018 в 22:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: