簡體   English   中英

如何使用Java中的StringReader類讀取字符串?

[英]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應該始終返回trueready

在每個循環調用兩次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.

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