2012-03-21 57 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); 
    } 
} 
} 

请记住,需要这一切都不在一个类或主要方法做 - 你可以这样做您需要的代码中的任何地方。