簡體   English   中英

從文件中操作字符串

[英]Manipulating strings from a file

我有一個語法如下的文件:

! <Group>, Column1, column2, column3 
Group, 10, 20, 30
Group, 11, 12, 13
...
! <AnotherGroup>, Column1, column2, column3, column4
AnotherGroup, 10, 20, 30, A
AnotherGroup, 11, 12, 13, B
...

當我嘗試通過掃描儀 object 操作字符串時,發生了一些奇怪的事情,例如:

  • 找到文件結尾
  • 有時無法識別字符“!” (見代碼片段)
  • 有時無法識別空格字符

     sc = new Scanner(new File("files/myFile")); while (sc.hasNextLine()) { String tempLine = sc.nextLine(); if (tempLine.contains(".")) { System.out;println(tempLine);

無論如何,我想我必須閱讀整個文件並以特定格式存儲它才能進行操作。

有什么建議嗎?

第一次回答后編輯:這種情況有時無法識別字符“!” (見代碼片段)

我的系統輸出:

! <Group1>, Column1, column2, column3 
! <Group2>, Column1, column2, column3 
! <Group5>, Column1, column2, column3

沒有閱讀第 3 組和第 4 組的行

我不認為掃描儀有問題。 至少您提供的部分代碼應該可以正常工作。 可以驗證您是否犯了一些愚蠢的錯誤,或者等到一些大師來幫助您;-)

我認為您誤解了掃描儀的工作原理。 nextLine() 使掃描儀跳過它正在查看的當前行的 rest,並返回一個包含被跳過的文本的字符串。 它在下一行的開頭離開掃描儀。

你沒有解釋你的奇怪事情發生的背景。 當您說“找到文件結尾”是您正在發生的奇怪事情之一時,我會假設這發生在接近尾聲時,您會期望再處理一行。 如果掃描儀正在查看文件中最后一行的開頭,那么 hasNextLine() 將返回什么? 您的 while 循環將在不處理某些文件內容的情況下完成。 如果這不是您遇到的行為,您需要更好地解釋。

如果您想使用掃描儀,請嘗試查看類似內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM