2012-03-21 83 views
1

我有一個非常長的字符串,我想逐字符地讀取字符,直到字符串結束。按字符串的字符讀取字符問題:JAVA

在Java中,我發現了兩種方式來閱讀:

  1. 使用的charAt。
  2. 使用StringReader。

任何人可以幫助我:

  1. 哪一個是更快的方式?
  2. 如何使用StringReader逐字符讀取字符,直到字符串結束 ?

在此先感謝。

回答

3
  1. 測量它並找出!說真的,在我的硬件上,與你在硬件上相比,情況可能會有所不同。但我懷疑charAt()
  2. 這只是一個Reader,所以它由一個
+0

謝謝。我知道了。 – Arpssss 2012-03-21 17:35:56

+1

謝謝。但你爲什麼懷疑?有什麼具體原因嗎? – Arpssss 2012-03-21 17:47:18

2
  1. 具有相同的方法,任何其他Reader,包括int read()這將返回Unicode碼點的每個字符,一個衡量IT你自己。一旦字符串加載到內存中,我看不到有意義/顯着差異。
  2. StringReader#read()(RFTD)
+0

@MДΓΓБДLL謝謝。我知道了。 – Arpssss 2012-03-21 17:36:36

2

多久是 「很長?」

字符串使用toCharArray()方法從一個循環轉換爲字符數組,並有在它:

字符串的MyString =「測試」;

char [] myCharArray = mystring.toCharArray();

+0

這並不回答OP詢問的任何問題。 – 2012-03-21 17:34:38

+1

他想要「逐字讀字符直到字符串結束。」 – 2012-03-21 17:36:30

+0

...使用'StringReader'。 – 2012-03-21 17:39:19

1

下面是一個簡單的類設計,做你的要求,用的charAt方法:

public class Test { 

static String tS = "Hello this is a string"; 


public static void main (String args []) { 
//make a blank character that gets replaced each time the for loop runs  
char c;  
    for (int j = 0; j < tS.length(); j++) { 
      //for loop runs up the length of the string, then sets c to the 
      //current character in the string. Printing c just proves the concept. 
     c = tS.charAt(j); 
     System.out.println(c); 
    } 
} 
} 

請記住,需要這一切都不在一個類或主要方法做 - 你可以這樣做您需要的代碼中的任何地方。