java中toCharArray()方法的使用

来源:互联网 发布:saas企业级软件服务 编辑:程序博客网 时间:2024/05/21 05:59
《Thinking in Java》Chapter11中存在下列代码
//: holding/QueueDemo.java// Upcasting to a Queue from a LinkedList.<pre name="code" class="java">package holding;
import java.util.*;public class QueueDemo {  public static void printQ(Queue queue) {    while(queue.peek() != null)      System.out.print(queue.remove() + " ");    System.out.println();  }    public static void main(String[] args) {  //Character    Queue<Character> qc = new LinkedList<Character>();    for(char c : "Brontosaurus".toCharArray())      qc.offer(c);    printQ(qc);  }}
执行结果如下:<img src="http://img.blog.csdn.net/20160805125108693?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

我们经常会使用到toCharArray()方法,深层次的查看这个方法,我们来探讨一下。下面是Java类库中给出的代码。

    /**
     * Converts this string to a new character array.
     *
     * @return  a newly allocated character array whose length is the length
     *          of this string and whose contents are initialized to contain
     *          the character sequence represented by this string.
     */
    public char[] toCharArray() {
        // Cannot use Arrays.copyOf because of class initialization order issues
        char result[] = new char[value.length];
        System.arraycopy(value, 0, result, 0, value.length);
        return result;
    }

分析:将一个字符串转换成一个Character型的字符数组,并且这里面的字符是原封不动的拿进去的,意思就是说,包含一切字符均转换成相应的字符数组。

将上面的程序修改如下【在改字符串中添加一些空格的】

//: holding/QueueDemo.java// Upcasting to a Queue from a LinkedList.package holding;import java.util.*;public class QueueDemo {  public static void printQ(Queue queue) {    while(queue.peek() != null)      System.out.print(queue.remove() + " ");    System.out.println();  }    public static void main(String[] args) {  //Character    Queue<Character> qc = new LinkedList<Character>();    for(char c : "Brontosaurus".toCharArray())      qc.offer(c);    printQ(qc);  }}
得到以下执行效果:


0 0
原创粉丝点击