我正在嘗試使用FileInputStream讀取文本文件,並且想要反向顯示所有單詞(因此最後一個單詞將成爲第一個單詞等)。 )我能夠使用字符串標記器反向顯示所有字母,但不是單詞..我現在嘗試了幾種不同的方法,但似乎無法做到這一點Java - 反向讀取文本文件(段落)並保持格式化
使用ArrayList我可以反向行(打印最後一行第一和第一行最後一個)..但我無法找到一個辦法扭轉所有的話
這裏是什麼,是在我的「的test.txt」文件:
Java的一個特點是可移植性,這意味着使用Java語言編寫的計算機程序必須在 任何 硬件/操作系統平臺上運行類似。這是通過將Java語言代碼編譯爲稱爲Java 字節碼的中間表示形式實現的,而不是直接針對平臺特定的機器代碼。 Java字節碼指令類似於機器代碼,但它們是 ,旨在由專門爲主機硬件編寫的虛擬機(VM)解釋爲 。最終用戶通常使用安裝在其自己的計算機上的Java運行時環境(JRE) 以用於獨立Java應用程序或用於Java小程序的Web瀏覽器。
代碼:
import java.io.*;
import java.util.ArrayList;
public class RevWords6
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("test.txt"), "UTF-8"));
String lines = br.readLine();
ArrayList<String> buffer = new ArrayList<String>();
//while the data is not null
while(lines != null)
{
//String words[] = lines.split(" ");
//track formatting
if(lines != null)
{
buffer.add("\n");
buffer.add(lines); //I wanted to put the words array in here instead of "lines" but didn't know how
}
lines=br.readLine();
}
//reads lines backwards from ArrayList buffer but wanted to read words from end-to-beginning
for(int i = buffer.size()-1; i>=0; i--)
{
System.out.print(buffer.get(i));
}
br.close();
}
}
輸出:
安裝在他們自己的機器上進行獨立的Java應用程序,或者在 Web瀏覽器的Java小程序。由專門爲主機硬件編寫的虛擬機(VM) 。最終用戶通常使用運行時環境(JRE)字節碼,而不是直接使用 平臺特定的機器碼。 Java字節碼指令類似於機器碼,但是它們旨在被解釋爲 硬件/操作系統平臺。這是由編譯 Java語言代碼稱爲Java中間表示實現的一個爪哇 特點是便攜性,這意味着計算機 程序用Java語言必須在任何
類似的運行正如你所看到的它是從下往上打印行,但我想從底部到頂部開始
在這裏我試圖使用一個StringBuffer與一個字符串數組分割行由一個空格,但在這種情況下我只能翻轉每一行而不翻轉整個段落
代碼:
import java.io.*;
public class RevWords4
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("C:\\Users\\Conor\\Documents\\test.txt"), "UTF-8"));
StringBuffer buffer = new StringBuffer();
String line = br.readLine();
String[] word = line.split(" ");
while(line != null)
{
if(line != null)
{
word = line.split(" ");
for(int i = word.length-1; i>=0; i--)
{
StringBuilder sb = new StringBuilder(word[i] + " ");
buffer.append(sb);
}
buffer.append("\n");
}
line=br.readLine();
}
System.out.print(buffer);
br.close();
}
}
輸出:
任何上類似地運行必須Java語言中書寫的程序 計算機裝置,其便攜性,是特徵性的一種 爪哇稱爲表示中間的到Java代碼語言Java編寫的 是這個平臺。硬件/操作系統 被解釋爲意圖是它們而不是代碼,機器相似的是 指令字節碼Java代碼。特定於機器平臺的直接 代替字節碼,(JRE)環境運行時Java一般使用 最終用戶硬件。通過小應用程序虛擬一個虛擬機來託管專門寫入(虛擬機)機器 。 Java進行Web瀏覽器的一個或應用程序,Java 獨立的機器擁有其上安裝
所以我很願意接受這個任何建議和提示,謝謝
斯普利特在字邊界會更容易:字符串[]字符串數組= s.split(」 \\ b「); – dragon66
這很有趣,是的解決了我的問題。謝謝 – Conor
也感謝提示dragon66 – Conor