Java中toCharArray()方法

Java中 toCharArray() 方法详解

《Thinking in Java》Chapter11中存在下列代码


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);
  }
}

我们经常会使用到 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);
  }
}

得到以下执行效果:

原文地址:https://www.cnblogs.com/Rosemajor/p/12195961.html

时间: 2024-08-05 17:42:52

Java中toCharArray()方法的相关文章

Java中的方法重写 与 final关键字

Java中的方法重写 与 final关键字 以下程序是否存在错误? class Base { private final void method() { System.out.println("In Base..."); } } class Sub extends Base { public void method() { System.out.println("In Sub..."); } } 答案 正确的. 使用final关键字可以声明类.成员变量和成员方法,一

java中的方法理解

1.java 方法的格式<修饰符><返回类型><方法名>(<参数列表>)返回类型说明了方法的返回值类型,如果不需要返回值,返回类型应该声明为void,需要返回值的,必须与说明的返回类型相同.2.如果一个方法的参数定为不定参数的话,这个参数可以根据参数个数动态生成一个数组,然后传入方法执行.不定参数有两个规定:方法的参数列表中最多只有一个不定长度的参数:不定长度的数组的位置必须是最后一个参数.不然不能通过编译.3.java中每个方法的返回值,有且仅有一个,因为

JavaSE学习笔记(四)——Java中的方法

一.  Java中的方法 需求:求整数10和整数3的乘积,然后在求整数2000和整数300的乘积. public class MethodTest01 { public  static void main(String[] args){ int  i = 10; int  j = 3; int  k = i * j; System.out.println("i  * j = " + k); int  l = 2000; int  m = 300; int  n = l * m; Sys

Java基础---如何定义Java中的方法(三十五)

如何定义 Java 中的方法 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块. 一般情况下,定义一个方法的语法是: 其中: 1. 访问修饰符:方法允许被访问的权限范围, 可以是 public.protected.private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用,其他几种修饰符的使用在后面章节中会详细讲解滴 2. 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void :如果方法具有返回值,则需要指定返回值的类型,并且在

使用java中replaceAll方法替换字符串中的反斜杠

今天在项目中使用java中replaceAll方法将字符串中的反斜杠("\")替换成空字符串(""),结果出现如下的异常: 1 java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \^ 上网找了一下错误的原因:在regex中"\\"表示一个"\",在java中一个"\"也要用"\\"

JAVA中toString方法的作用

因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”. 它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法 总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法 回答补充: 写这个方法的用途就是为了方便操作,所以在文件操作里面可用可不用 例子1: public class Orc { public st

Java中的方法(形参及实参)return返回类型

如何定义 Java 中的方法 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块. 一般情况下,定义一个方法的语法是: 其中: 1. 访问修饰符:方法允许被访问的权限范围, 可以是 public.protected.private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用,其他几种修饰符的使用在后面章节中会详细讲解滴 2. 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void :如果方法具有返回值,则需要指定返回值的类型,并且在

java中native方法的使用

native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中.Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问. JNI是Java本机接口(JavaNative Interface),是一个本机编程接口,它是Java软件开发工具箱(javaSoftware Development Kit,SDK)的一部分.JNI允许Java代码使用以其他语言编写的代码和代码库.Invocati

Java中replaceAll()方法的&quot;\&quot;问题

一.前话 看似小小的一个问题,却往往足矣让我们困惑了半小时.一小时甚至更久的时间.当你得知真相后,总是会愤怒地骂道:"居然是这样!这不是坑爹么!".嗯哼,这能怪谁?只能说明自己还太嫩!So--平时还是要多注意些细节,要不断的积累不断的丰富经验,日后才能有显摆的资本. 二.天真的以为 replaceAll()这方法太常见了,一般的字符替换都好理解.但是如果你所要替换的出现了"\"的话,那可就不大一样了.例如: str = "D:\test\test2\tes