[英]How can I read a String using StringReader class in Java?
我必須使用String Reader Class逐字符讀取String char。 我寫了這段代碼:
String string = "Hello, World!";
StringReader stringReader = new StringReader(string);
while(stringReader.ready())
{
System.out.println(stringReader.read());
}
但是循環不會以字符串的結尾結束,它是無限的! 為什么?
我也嘗試這樣做:
while(stringReader.read()!=-1)
{
System.out.println(stringReader.read());
}
循環不是無限的...但是它跳了一些字符...我如何讀取所有String?
嘗試這個:
String str = "Hello, World!";
//Create StringReader instance
StringReader reader = new StringReader(str);
int c = reader.read();
while (c != -1){
//Converting to character
System.out.print((char)c);
c = reader.read();
}
//Closing the file io
reader.close();
ready
方法告訴您下一個read
調用是否不會阻塞。
返回:如果保證下一個read()不會阻塞輸入,則返回true,否則返回false。
一旦到達字符串的末尾,它肯定不會阻塞。 您已經到達字符串的末尾。 使用String
,內容已經存在; StringReader
應該始終返回true
以ready
。
在每個循環調用兩次read
時,您正在跳過字符-一次在while
條件下,一次在主體中。 而是將其分配給變量。
int c;
while((c = stringReader.read()) != -1)
{
System.out.println((char) c);
}
您還可以像平常其他類型的Reader
-將其包裝在BufferedReader
以便可以調用nextLine
或將其包裝在Scanner
。
BufferedReader bf = new BufferedReader(stringReader);
要么
Scanner strScanner = new Scanner(stringReader);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.