亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲取從緩沖閱讀器文件中獲得的數字?

如何獲取從緩沖閱讀器文件中獲得的數字?

泛舟湖上清波郎朗 2022-11-02 10:53:14
我需要使用 BufferedReader 從 textFile 中獲取一個數字。當我得到它時,該數字以 ASCII 編碼,我無法將其轉換為整數。本練習用于課堂練習。練習:在帶有 Windows 筆記本的文件夾中創建一個文本文件。該文件將包含整數,每行一個。用 Java 創建一個程序,它讀取先前的數據文件并在屏幕上顯示我們的值、平均值、最大值和最小值。用戶將指明文件的名稱。char valor;fs = new FileReader(path+filename);bf = new BufferedReader(fs)//THE TEXTFILE CONTAINS INT NUMBERS, FIRST OF THEM IS NUMER 3valor = (char)bf.read(); //I NEED THIS NUMBER, WITHOUT ASCII CODED//I NEED TO USE THIS VALUE FOR CALCULATE System.out.print(valor); //CONSOLE :      3---------------------------------------------//IF I CONVERT, CONSOLE SHOWSSystem.out.print((int)valor);   //CONSOLE:     51
查看完整描述

2 回答

?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

發生這種情況是因為字符“3”的 ASCII 表中的索引是 51(ASCII 表)。你需要解析它:

int value = Character.getNumericValue(valor);

或減去 '0' 的 ASCII 碼 (48)

int value = valor - '0';


查看完整回答
反對 回復 2022-11-02
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

一種方法是使用Integer可以接受字符串輸入的類中的構造函數:


int min = Integer.MAX_VALUE;

int max = Integer.MIN_VALUE;

int sum = 0;

int cnt = 0;


try (BufferedReader br = Files.newBufferedReader(Paths.get(path+filename))) {

    String line;

    while ((line = br.readLine()) != null) {

        Integer val = new Integer(line);

        if (val < min) min = val;

        if (val > max) max = val;

        sum += val;

        ++cnt;

    }

}

catch (IOException e) {

    System.err.format("IOException: %s%n", e);

}


System.out.println("average value: " + (sum / cnt));

System.out.println("highest value: " + max);

System.out.println("smallest value: " + min);


查看完整回答
反對 回復 2022-11-02
  • 2 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號