史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2007-05-18, 10:24 PM   #1
leowang 帥哥
長老會員
 
leowang 的頭像
榮譽勳章
UID - 2461
在線等級: 級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時
註冊日期: 2002-12-06
文章: 4729
精華: 0
現金: 101679 金幣
資產: 668410953 金幣
預設 討論 - JAVA 檔案處理問題

我用JAVA寫一個程式 來讀取.TXT的檔案
例如TXT的內容為
語法:
000001   as01  leo    r12345678
000002   as01  moo  e22356695
000003   as01  kko   u12345646
.
.
.
.
.
要如何能夠在輸出時 把"as01"這個欄位刪掉
前提之下 不能夠更改TXT裡的資料


我的程式碼

語法:
import java.io.*;

public class aa
{
    // 主程式
    public static void main(String[] args) throws Exception
    {
        String file = "logFile.drc";
        // 建立File物件
        File name = new File(file);
        if ( name.exists() )
        {
          // 建立BufferedReader的輸入串流物件
          BufferedReader fr = new BufferedReader(new FileReader(name));
                        
          String str;
          // 讀取資料
          while( (str = fr.readLine()) != null)
              System.out.println(str);  
          fr.close();      // 關閉串流
        }
        else
          System.out.println("檔案[" + name + "不存在!");   
    }
}
__________________
https://lh3.googleusercontent.com/RuWvUdY-gxGU8oiOD6DIEoKZhLD-Hn-ITKj1LgD3QY6MehzkoddZNew3f3AFLA8dbxbnK-uiFipPzO3GpT5iL4VTIKCiYhgfnQiP5DROmn_5YIpA9zrseGljottMSbiTsw=w1280

金錢的數量,決定馬子的漂亮
硬碟的容量,決定男人的力量

製作Mail Logo按這裡
leowang 目前離線  
送花文章: 257, 收花文章: 1161 篇, 收花: 4928 次
回覆時引用此帖
舊 2007-05-18, 10:39 PM   #2 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

很間單啊
String 類別裡面有一個 split 方法
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
舊 2007-05-18, 11:03 PM   #3 (permalink)
長老會員
 
leowang 的頭像
榮譽勳章
UID - 2461
在線等級: 級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時
註冊日期: 2002-12-06
文章: 4729
精華: 0
現金: 101679 金幣
資產: 668410953 金幣
預設

不太懂耶.......
該如何來下手阿
leowang 目前離線  
送花文章: 257, 收花文章: 1161 篇, 收花: 4928 次
回覆時引用此帖
舊 2007-05-19, 01:01 AM   #4 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

引用:
作者: leowang 查看文章
不太懂耶.......
該如何來下手阿
String[] str= "this is a dog".split("\\t");
試試看這個方法

此帖於 2007-05-19 08:58 PM 被 snoopy 編輯.
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
向 snoopy 送花的會員:
zasiza (2007-05-19)
感謝您發表一篇好文章
舊 2007-05-19, 11:00 AM   #5 (permalink)
長老會員
 
leowang 的頭像
榮譽勳章
UID - 2461
在線等級: 級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時
註冊日期: 2002-12-06
文章: 4729
精華: 0
現金: 101679 金幣
資產: 668410953 金幣
預設

還是弄不出來耶
我是這樣想的 有沒有把法把一段字串以空白來做區隔
將它轉為陣列a[0] a[1] a[2]............
再將需要的部份印出來 或做其他的處理
leowang 目前離線  
送花文章: 257, 收花文章: 1161 篇, 收花: 4928 次
回覆時引用此帖
舊 2007-05-19, 04:23 PM   #6 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

引用:
作者: leowang 查看文章
還是弄不出來耶
我是這樣想的 有沒有把法把一段字串以空白來做區隔
將它轉為陣列a[0] a[1] a[2]............
再將需要的部份印出來 或做其他的處理
split 方法就是你想要的
你沒有試過嗎
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
舊 2007-05-19, 08:50 PM   #7 (permalink)
長老會員
 
leowang 的頭像
榮譽勳章
UID - 2461
在線等級: 級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時
註冊日期: 2002-12-06
文章: 4729
精華: 0
現金: 101679 金幣
資產: 668410953 金幣
預設

是可以區隔啦
但只能印出s[0] 要印出s[1]就會出錯了


語法:
import java.io.*;

public class aa
{
    // 主程式
    public static void main(String[] args) throws Exception
    {
        String file = "logFile.drc";
        // 建立File物件
        File name = new File(file);
        if ( name.exists() )
        {
          // 建立BufferedReader的輸入串流物件
          BufferedReader fr = new BufferedReader(new FileReader(name));
                        
         String str;
         String s[];
 
          // 讀取資料
          while( (str = fr.readLine()) != null)
          {
          	  s = str.split(" ");
              System.out.print(s[0],s[1]);<-------這行就出錯了
              
          }    
          fr.close();      // 關閉串流
        }
        else
          System.out.println("檔案[" + name + "不存在!");   
    }
}

此帖於 2007-05-19 09:08 PM 被 leowang 編輯.
leowang 目前離線  
送花文章: 257, 收花文章: 1161 篇, 收花: 4928 次
回覆時引用此帖
舊 2007-05-19, 08:57 PM   #8 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

引用:
作者: leowang 查看文章
試過了
弄不出來
我弄出來只能印出a[0] 而且沒有區隔
印出來還是是整段的字串
更正一下
String[] str= "this is a dog".split("\\t");

str 就是切割完的字串陣列
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
舊 2007-05-19, 09:45 PM   #9 (permalink)
長老會員
 
leowang 的頭像
榮譽勳章
UID - 2461
在線等級: 級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時
註冊日期: 2002-12-06
文章: 4729
精華: 0
現金: 101679 金幣
資產: 668410953 金幣
預設

我修改完發現列印會出錯耶

語法:
mport java.io.*;

public class aa
{
    // 主程式
    public static void main(String[] args) throws Exception
    {
        String file = "logFile.drc";
        // 建立File物件
        File name = new File(file);
        if ( name.exists() )
        {
          // 建立BufferedReader的輸入串流物件
          BufferedReader fr = new BufferedReader(new FileReader(name));
                        
         String str;
      
 
          // 讀取資料
          while( (str = fr.readLine()) != null)
          {
            String[] s= str.split(" ");
              System.out.print(s[0],s[1]);<-------這行就出錯了
 
          }    
          fr.close();      // 關閉串流
        }
        else
          System.out.println("檔案[" + name + "不存在!");   
    }
}
leowang 目前離線  
送花文章: 257, 收花文章: 1161 篇, 收花: 4928 次
回覆時引用此帖
舊 2007-05-19, 10:16 PM   #10 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

split 裡面放的正規表示式
regular expression
只放空白是不行的
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
舊 2007-05-20, 12:12 AM   #11 (permalink)
長老會員
 
leowang 的頭像
榮譽勳章
UID - 2461
在線等級: 級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時
註冊日期: 2002-12-06
文章: 4729
精華: 0
現金: 101679 金幣
資產: 668410953 金幣
預設

引用:
作者: snoopy 查看文章
split 裡面放的正規表示式
regular expression
只放空白是不行的
要放空白才能達到我的要求
我列印a[0] 可以正常的編譯
也就是說
System.out.println(a[0]);
這樣可以正常執行
但是我要列印出下一個陣列時 a[1]時就出錯了
System.out.println(a[0],a[1]);
leowang 目前離線  
送花文章: 257, 收花文章: 1161 篇, 收花: 4928 次
回覆時引用此帖
舊 2007-05-20, 12:51 AM   #12 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

語法:
import java.io.*;

public class App {
	public static void main(String[] args) throws Exception {
		{
			String file = "C:\\123.txt";
			// 建立File物件
			File name = new File(file);
			if (name.exists()) {
				// 建立BufferedReader的輸入串流物件
				BufferedReader fr = new BufferedReader(new FileReader(name));

				String str;

				// 讀取資料
				while ((str = fr.readLine()) != null) {
					String[] s = str.split("\\s+");
					for (int i = 0; i < s.length; i++)
						System.out.print(s[i]+" ");
					System.out.println();
				}
				fr.close(); // 關閉串流
			} else
				System.out.println("檔案[" + name + "不存在!");
		}
	}
}
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
向 snoopy 送花的會員:
leowang (2007-05-25)
感謝您發表一篇好文章
舊 2007-05-20, 01:17 AM   #13 (permalink)
長老會員
 
leowang 的頭像
榮譽勳章
UID - 2461
在線等級: 級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時級別:111 | 在線時長:12773小時 | 升級還需:219小時
註冊日期: 2002-12-06
文章: 4729
精華: 0
現金: 101679 金幣
資產: 668410953 金幣
預設

對了順便問一下
有沒有辦法 把讀取下的東西 去作運算阿
例如:
txt檔案
12:03:02.591571 leo car sent>12:04:02.581572
.
.
.
.
把一欄跟第四欄地時間去做相減阿
因為我讀出來的形態已經是字串了
leowang 目前離線  
送花文章: 257, 收花文章: 1161 篇, 收花: 4928 次
回覆時引用此帖
舊 2007-05-27, 05:07 PM   #14 (permalink)
註冊會員
 
sulein1122 的頭像
榮譽勳章
UID - 43104
在線等級: 級別:12 | 在線時長:206小時 | 升級還需:15小時級別:12 | 在線時長:206小時 | 升級還需:15小時
註冊日期: 2003-02-27
VIP期限: 2010-07
住址: 桃源吉第
文章: 136
精華: 0
現金: 0 金幣
資產: 17574881 金幣
預設

先把二個時間值讀出來,然後將字串區分為小時、分鐘、秒、毫秒後,去求得UTC時間
再將二個UTC時間求出之後相減,取得的間隔再去換算時間差就好了
sulein1122 目前離線  
送花文章: 0, 收花文章: 11 篇, 收花: 16 次
回覆時引用此帖
向 sulein1122 送花的會員:
leowang (2007-05-27)
感謝您發表一篇好文章
舊 2007-05-28, 01:16 AM   #15 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

java 會以一個長整數型態紀錄當前時間
就是 long
這個數字表示從 1970 年到現在經過幾毫秒
如果要讓電腦自己幫做相減
請參考
DateFormat, Date 物件
不然可以自己寫個 mthod
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 02:35 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1