使用java我如何閱讀每行具有分隔符CRLF(\ r \ n)的段落。 例如如何使用java讀取每行具有CRLF( r n)作爲分隔符的行集合
4 \ r \ n 這\ r \ n 8 \ r \ n 響應\ r \ n
我想提取4並將其存儲到緩衝器中,然後讀出8和存儲爲這一段。 請幫幫我。
使用java我如何閱讀每行具有分隔符CRLF(\ r \ n)的段落。 例如如何使用java讀取每行具有CRLF( r n)作爲分隔符的行集合
4 \ r \ n 這\ r \ n 8 \ r \ n 響應\ r \ n
我想提取4並將其存儲到緩衝器中,然後讀出8和存儲爲這一段。 請幫幫我。
我不太清楚你必須做什麼,但如果你必須從你的文本中獲得字符串,你可以通過遵循我的解決方案。
這可能不是最好的方法,但它使用StringTokenizer
和\r\n
作爲分隔符。
StringTokenizer st1 = new StringTokenizer("4\r\n This\r\n 8\r\n response\r\n", "\r\n");
//iterate through tokens
while (st1.hasMoreTokens()) {
String str = st1.nextToken();
System.out.println(str);
}
這將打印
這
響應
此,當然,是有用如果您不是從文件中讀取數據,而是剛收到完整字符串,則需要從中提取數據。
如果您正在閱讀文件,您應該檢查其他答案爲BufferedReader.readLine
是正確的方法。
編輯:
這裏的新代碼:
StringTokenizer st1 = new StringTokenizer("4\r\n This\r\n 8\r\n response\r\n", "\r\n");
//iterate through tokens
while (st1.hasMoreTokens()) {
String str = st1.nextToken();
try{
//Integer.parseInt throws an exception in the input String doesn't represent a number so we catch the exception and we simply skip it. This will just output each number in your string.
int i = Integer.parseInt(str.trim());
System.out.println(i);
} catch (NumberFormatException e){}
}
現在它只是。OUPUTS:
謝謝。但我想在我的輸出4中跳過\ r \ n並跳過「this」,再次我想要8.我該如何做這個? – user2365917 2013-05-10 08:32:34
我已經更改了代碼。 – StepTNT 2013-05-10 08:41:58
非常感謝你。我會嘗試這個。 – user2365917 2013-05-10 08:59:59
使用BufferedReader.readLine()
只讀行,或Scanner
如果你想自動解析數字。
我不太清楚你需要什麼輸出,但BufferedReader類將允許你逐行讀取文本文件。有幾個例子on the internet。
的readLine
方法將執行以下操作:
讀取一行文本。換行符被換行符('\ n'),回車符('\ r')或回車符後面的換行符中的任何一個結束。
我想用while循環讀取上面例子4和8中的數字,while(line!= null)我想讀直到\ r \ n所以我第一次讀到「4 \ r \ n」和那麼我想只將4存儲到ByteArrayOutPutBuffer中。然後我想要得到5如上。如何實現這個 – user2365917 2013-05-10 10:21:08
在while循環中檢查是否讀取的行(不包括\ r \ n)是一個數字。 StepTNT的回答上面給出了一種方法。 – chooban 2013-05-10 10:47:04
該文件從哪裏來?爲什麼每個單詞都以其長度開頭? – jlordo 2013-05-10 07:20:58
我不確定我是否理解這個問題,你是否想要閱讀'4','這個','8','迴應',還是作爲jlordo說數字是後面的單詞的長度?只要你堅持一個特定的分隔符,我就看不到任何需要這種用例的用例。 – nvrs 2013-05-10 07:27:08
我想在分塊傳輸編碼的情況下讀取http響應。每個塊都帶有大小和塊數據。所以我只需要大小,每個塊都有分隔符\ r \ n。在這種情況下,我需要它。 – user2365917 2013-05-10 08:02:09