【經典小練習】修改文件中的數據

文章目錄

  • 🌹例子
  • 🌺思路
  • 🛸方法一
    • ?報錯解決
  • 🛸方法二

🌹例子

文本文件中有下面的數據
2-1-9-4-7-8
將文件中的數據進行排序,變成下面的數據
1-2-4-7-8-9

🌺思路

要對這些數據進行排序,可以采用以下思路:

讀取文本文件中的數據:首先需要讀取文本文件中的數據,并將其轉換為程序中的數據結構,如數組或列表,以便進行排序操作。

分割數據:將讀取到的字符串按照分隔符(這里是“-”)進行分割,得到各個數字的字符串表示。

轉換為數字并排序:將分割得到的字符串轉換為整數,并進行排序操作,可以使用常見的排序算法,如快速排序、歸并排序等。在Java中,可以使用Arrays.sort()方法對數組進行排序,或使用Collections.sort()方法對列表進行排序。

將排序后的數字連接為字符串:將排序后的數字重新連接為字符串,并在數字之間添加分隔符“-”,得到最終的排序結果。

將排序結果寫入文件:將排序后的結果寫入文件,完成整個排序過程。

🛸方法一

package org.Demo6;import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;public class Demo1 {public static void main(String[] args) throws IOException {//讀取數據FileReader fr = new FileReader("E:\\a.txt");StringBuilder sb=new StringBuilder();int ch;while ((ch=fr.read())!=-1){sb.append((char)ch);}fr.close();//排序String str=sb.toString();String[] arrstr = str.split("-");ArrayList<Integer> list = new ArrayList<>();for (String s: arrstr){// 去除空白字符s = s.trim();if (!s.isEmpty()) {int i = Integer.parseInt(s);list.add(i);}
//            int i=Integer.parseInt(s);
//            list.add(i);}Collections.sort(list);//寫出數據FileWriter fw = new FileWriter("E:\\b.txt");for (int i=0;i<list.size();i++){if (i==list.size()-1){//最后一個元素fw.write(list.get(i)+"");}else {//非最后一個元素fw.write(list.get(i)+"-");}}fw.close();}
}

?報錯解決

在這里插入圖片描述
根據報錯信息中提供的輸入字符串"8\n",可以看到字符串中包含了換行符"\n"。這可能是導致轉換失敗的原因。Integer.parseInt()方法只能將符合整數格式的字符串轉換為整數,當字符串中包含非數字字符時,會拋出NumberFormatException異常。
在這里插入圖片描述
為了解決這個問題,你可以在轉換之前先去除字符串中的空白字符,包括換行符。可以使用String.trim()方法去除字符串兩端的空白字符

在這里插入圖片描述

🛸方法二

package org.Demo6;import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;public class Demo1 {public static void main(String[] args) throws IOException {//讀取數據FileReader fr = new FileReader("E:\\a.txt");StringBuilder sb = new StringBuilder();int ch;while ((ch = fr.read()) != -1) {sb.append((char) ch);}fr.close();System.out.println(sb);//排序Integer[] arr = Arrays.stream(sb.toString().split("-")).map(s -> s.trim()) //去掉首尾空格.map(Integer::parseInt).sorted().toArray(Integer[]::new);//寫出FileWriter fw = new FileWriter("E:\\b.txt");String s=Arrays.toString(arr).replace(", ","-");//tostring操作解釋后,是[1,2,4,7,8,9],帶有", "的,我們要把", "(逗號空格)替換為”-“//上一段代碼運行結束后是結果是帶有[]的,我們只需要把頭尾的[]去掉即可String result=s.substring(1,s.length()-1);fw.write(result);System.out.println(result);}}

在這里插入圖片描述
在技術的道路上,我們不斷探索、不斷前行,不斷面對挑戰、不斷突破自我。科技的發展改變著世界,而我們作為技術人員,也在這個過程中書寫著自己的篇章。讓我們攜手并進,共同努力,開創美好的未來!愿我們在科技的征途上不斷奮進,創造出更加美好、更加智能的明天!

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/168195.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/168195.shtml
英文地址,請注明出處:http://en.pswp.cn/news/168195.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

智慧樓宇可視化視頻綜合管理系統,助力樓宇高效安全運行

隨著互聯網技術的進步和發展&#xff0c;智能化的樓宇建設也逐步成為人們選擇辦公場所是否方便的一個重要衡量因素。在智能化樓宇中&#xff0c;安全管理也是重要的一個模塊。得益于互聯網新興技術的進步&#xff0c;安防視頻監控技術也得到了快速發展并應用在樓宇的安全管理中…

Python武器庫開發-前端篇之html概述(二十八)

前端篇之html概述(二十八) html概述 HTML5是構建Web內容的一種語言描述方式。HTML5是互聯網的下一代標準&#xff0c;是構建以及呈現互聯網內容的一種語言方式&#xff0e;被認為是互聯網的核心技術之一。HTML產生于1990年&#xff0c;1997年HTML4成為互聯網標準&#xff0c;…

虹科Pico汽車示波器 | 汽車免拆檢修 | 2011款瑞麒M1車發動機起動困難、加速無力

一、故障現象 一輛2011款瑞麒M1車&#xff0c;搭載SQR317F發動機&#xff0c;累計行駛里程約為10.4萬km。該車因發動機起動困難、抖動、動力不足、熱機易熄火等故障進廠維修。用故障檢測儀檢測&#xff0c;發動機控制單元&#xff08;ECU&#xff09;中存儲有故障代碼“P0340相…

【Python 訓練營】N_2 打印乘法口訣表

題目 借助格式化輸出長方形、左上三角形、右上三角形、左下三角形、右下三角形5種格式的九九乘法口訣表。 答案 長方形格式 for i in range(1,10):for j in range(1,10):print(%d*%d%2d%(i,j,i*j),end ) # %2d 整數站兩個字節print()左上三角形 for i in range(1,10):for …

Vue框架學習筆記——事件處理

文章目錄 前文提要事件處理的解析過程樣例代碼如下&#xff1a;效果展示圖片&#xff1a;v-on:click"響應函數"v-on:click簡寫形式響應函數添加響應函數傳參占位符"$event"注意事項 前文提要 本人僅做個人學習記錄&#xff0c;如有錯誤&#xff0c;請多包…

2、git進階操作

2、git進階操作 2.1.1 分支的創建 命令參數含義git branch (git checkout -b)<new_branch> <old_branch>表示創建分支-d <-D>刪除分支 –d如果分支沒有合并&#xff0c;git會提醒&#xff0c;-D強制刪除-a -v查看分支-m重新命名分支commit id從指定的commi…

如何打造“面向體驗”的音視頻能力——對話火山引擎王悅

編者按&#xff1a;隨著全行業視頻化的演進&#xff0c;我們置身于一個充滿創新與變革的時代。在這個數字化的浪潮中&#xff0c;視頻已經不再只是傳遞信息的媒介&#xff0c;更是重塑了我們的交互方式和體驗感知。作為字節跳動的“能力溢出”&#xff0c;火山引擎正在飛速奔跑…

【React】路徑別名配置

路徑解析配置&#xff08;webpack&#xff09;&#xff0c;把 / 解析為 src/路徑聯想配置&#xff08;VsCode&#xff09;&#xff0c;VSCode 在輸入 / 時&#xff0c;自動聯想出來對應的 src/下的子級目錄 1. 路徑解析配置 安裝craco npm i -D craco/craco項目根目錄下創建配…

RK3588平臺 USB框架與USB識別流程

一.USB的基本概念 在最初的標準里&#xff0c;USB接頭有4條線&#xff1a;電源&#xff0c;D-,D,地線。我們暫且把這樣的叫做標準的USB接頭吧。后來OTG出現了&#xff0c;又增加了miniUSB接頭。而miniUSB接頭則有5條線&#xff0c;多了一條ID線,用來標識身份用的。 熱插拔&am…

9. Mysql 模糊查詢和正則表達式

一、模糊查詢 1.1 LIKE運算符 在MySQL中&#xff0c;可以使用LIKE運算符進行模糊查詢。LIKE運算符用于匹配字符串模式&#xff0c;其中可以使用通配符來表示任意字符或字符序列。 示例代碼 SELECT * FROM table_name WHERE column_name LIKE pattern;table_name&#xff1a…

最新AIGC創作系統ChatGPT網站源碼,Midjourney繪畫系統,支持GPT-4圖片對話能力(上傳圖片并識圖理解對話),支持DALL-E3文生圖

一、AI創作系統 SparkAi創作系統是基于OpenAI很火的ChatGPT進行開發的Ai智能問答系統和Midjourney繪畫系統&#xff0c;支持OpenAI-GPT全模型國內AI全模型。本期針對源碼系統整體測試下來非常完美&#xff0c;可以說SparkAi是目前國內一款的ChatGPT對接OpenAI軟件系統。那么如…

2023亞太杯數學建模B題完整原創論文講解

大家好呀&#xff0c;從發布賽題一直到現在&#xff0c;總算完成了2023亞太地區數學建模競賽B題玻璃溫室的微氣候調控完整的成品論文。 本論文可以保證原創&#xff0c;保證高質量。絕不是隨便引用一大堆模型和代碼復制粘貼進來完全沒有應用糊弄人的垃圾半成品論文。 論文共6…

第4章 C++多線程系統編程精要

第4章 C多線程系統編程精要 4.1 引言 學習多線程編程面臨的最大的思維方式的轉變有以下兩點&#xff1a; 當前線程可能隨時會被切換出去&#xff0c;或者說被搶占&#xff08;preempt&#xff09;了多線程程序中事件的發生順序不再有全局統一的先后關系 多線程程序的正確性…

軟著項目推薦 深度學習 opencv python 實現中國交通標志識別

文章目錄 0 前言1 yolov5實現中國交通標志檢測2.算法原理2.1 算法簡介2.2網絡架構2.3 關鍵代碼 3 數據集處理3.1 VOC格式介紹3.2 將中國交通標志檢測數據集CCTSDB數據轉換成VOC數據格式3.3 手動標注數據集 4 模型訓練5 實現效果5.1 視頻效果 6 最后 0 前言 &#x1f525; 優質…

游覽器緩存講解

瀏覽器緩存是指瀏覽器在本地存儲已經請求過的資源的一種機制&#xff0c;以便在將來的請求中能夠更快地獲取這些資源&#xff0c;減少對服務器的請求&#xff0c;提高頁面加載速度。瀏覽器緩存主要涉及到兩個方面&#xff1a;緩存控制和緩存位置。 緩存控制 Expires 頭&#…

Javascript每天一道算法題(十六)——獲取除自身以外數組的乘積_中等

文章目錄 1、問題2、示例3、解決方法&#xff08;1&#xff09;方法1 總結 1、問題 給你一個整數數組 nums&#xff0c;返回 數組 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘積 。 題目數據 保證 數組 nums之中任意元素的全部前綴元素和后綴…

RAM模型從數據準備到pretrain、finetune與推理全過程詳細說明

提示&#xff1a;RAM模型&#xff1a;環境安裝、數據準備與說明、模型推理、模型finetune、模型pretrain等 文章目錄 前言一、環境安裝二、數據準備與解讀1.數據下載2.數據標簽內容解讀3.標簽map內容解讀 三、finetune訓練1.微調訓練命令2.load載入參數問題3.權重載入4.數據加載…

使用new Vue()的時候發生了什么?

前言 Vue.js是一個流行的JavaScript前端框架&#xff0c;用于構建單頁面應用&#xff08;SPA&#xff09;和用戶界面。當我們使用new Vue()來創建一個Vue實例時&#xff0c;Vue會執行一系列的初始化過程&#xff0c;將數據變成響應式&#xff0c;編譯模板&#xff0c;掛載實例…

RabbitMQ之發送者(生產者)可靠性

文章目錄 前言一、生產者重試機制二、生產者確認機制實現生產者確認&#xff08;1&#xff09;定義ReturnCallback&#xff08;2&#xff09;定義ConfirmCallback 總結 前言 生產者重試機制、生產者確認機制。 一、生產者重試機制 問題&#xff1a;生產者發送消息時&#xff0…

分布式事務總結

文章目錄 一、分布式事務基礎什么是事務&#xff1f;本地事物分布式事務分布式事務的場景 二、分布式事務解決方案全局事務可靠消息服務TCC 事務 三、Seata 分布式事務解決方案3.1 Seata-At模式3.2 秒殺項目集成 Seata啟動 Seata-Server項目集成seata配置AT模式代碼實現 3.3 Se…