如何使用 char 文字初始化 char 数组?
Posted
技术标签:
【中文标题】如何使用 char 文字初始化 char 数组?【英文标题】:How to init char array using char literals? 【发布时间】:2012-07-27 12:21:11 【问题描述】:以下语句在 Java 中不起作用,但在 C 中起作用:
char c[] = "abcdefghijklmn";
怎么了?
char数组只能按如下方式初始化吗?
char c[] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n';
【问题讨论】:
应该是 String str="something";对于 Java。您可以使用 String 类的 toCharArray() 方法来获取 char[]。 没有错,这只是两种不同的语言。 它不起作用,因为 Java 有一个真正的 String 类,而不仅仅是像 C 那样的以 null 结尾的字符数组。 char[] 在 Java 中通常没用。您将在 Java 中使用 String 类,而不是触摸 char[] 如果你想要一个可变的char[]
,请使用 StringBuilder
【参考方案1】:
你可以从一个字符串初始化它:
char[] c = "abcdefghijklmn".toCharArray();
但是,如果你需要的是一个字符串,你应该简单地使用一个字符串:
String s = "abcdefghijklmn";
【讨论】:
【参考方案2】:你可以使用
char c[] = "abcdefghijklmn".toCharArray();
如果您不介意创建不必要的字符串。
与 C 不同,字符串是对象,而不仅仅是字符数组。
也就是说,直接使用 char 数组是非常罕见的。你确定你不想要一个字符串吗?
【讨论】:
与C相比,原始类型不足以表示所有数据类型? 所有对象都是从基本数据类型构建的,包括字符串。但是使用对象的意义在于它们提供了比基本数据类型更丰富的 API。要从开头和结尾删除空格,请使用trim()
。要搜索子字符串,请使用indexOf()
。要拆分分隔符,请使用split()
。想要确保从并发线程访问 String 是安全的:没问题:String 是线程安全且不可变的,这与 char 数组不同。为什么要使用 char 数组并自己重新实现这一切?【参考方案3】:
文字“abcdefghijklmn”是Java 中的String 对象。您可以使用 String toCharArray() 方法快速将其转换为 char 数组。
试试这个:
char[] c = "abcdefghijklmn".toCharArray();
【讨论】:
【参考方案4】:试试这个:
String a = "abcdefghijklmn";
char[] c = a.toCharArray();
【讨论】:
【参考方案5】:如果您不想使用 String toCharArray(),那么是的,必须像任何其他数组一样初始化 char 数组-char[] c = new char[] 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n';
【讨论】:
以上是关于如何使用 char 文字初始化 char 数组?的主要内容,如果未能解决你的问题,请参考以下文章