Java中的字符数组| Java 字符数组

已发表: 2020-12-01

目录

介绍

我们今天处理的大多数数据都包含字符,如果程序员熟悉并提供处理字符数据的方法,则可以说编程语言很灵活。

java中的char数组非常有用且易于使用,字符串在java中是不可变的,但我们可以操作char数组中的条目。 与列表和集合相比,字符数组更快,甚至比集合和列表更简单。

现在让我们探索 char 数组的工作原理!

声明和初始化

char 数组的声明类似于 java 中常规数组的声明。 “char[] array_name”或“char array_name[]”是声明时要遵循的语法。

声明之后,接下来我们要做的就是初始化。 “array_name = new char[array_length]”是要遵循的语法。 无论如何,我们可以使用“char array_name[] = new char[array_length]”语法在一个单一的过程中进行声明和初始化。 数组的长度应在初始化时在 char 数组中声明。

公共测试{

公共静态无效主要字符串args [])

{

//声明-1

字符arr[];

arr =新字符[ 4 ];

//声明-2

字符arr2[] =新字符[ 4 ];

//赋值-1

char arr1[] =new char []{ ' a ' , ' b ' , ' c ' , ' d ' };

//赋值-2

arr[ 0 ] = '一个' ;

arr[ 1 ] = ' b ' ;

arr[ 2 ] = ' c ' ;

arr[ 3 ] = ' d ' ;

系统 出来 println(arr);

系统 出来 println(arr1);

}

}

在上面的代码片段中,declaration-1 和declaration-2 都是声明和初始化的方式。 而assigning-1 和assigning-2 都是将条目推送到数组的两种方式。 请记住,当我们打印一个 char 数组时,它会将所有合并为字符串的字符打印出来,在上述情况下,输出将是“abcd”。

了解更多: Java 中的事件处理:它是什么以及它是如何工作的?

循环一个 char 数组

在 char 数组上循环是 java 中一项有趣的任务,我们可以使用常规的“for 循环”或“for:each”循环来循环数组。

//循环-1

for ( int i = 0 ;i < arr .length ; i ++ )

系统 出来 打印(arr [i]);

//循环-2

对于(字符c : arr)

系统 出来 打印(c);

在上面的代码片段中,loop-1 是一个常规的 for 循环,循环 1 的最终输出将是“abcd”。 而loop-2是一个for:每个循环和loop-2的最终输出都是“abcd”。

字符数组的长度可以使用 length 属性来获得。 “Array_name.length”是要遵循的语法。

char数组[] =new char []{ ' h ' , ' e ' , ' l ' , ' l ' , ' o ' };

系统 出来 println(数组长度);

正如预期的那样,上面的代码片段打印了 5。

报名参加世界顶尖大学的软件工程课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

对字符数组进行排序

java中的数组可以使用“Arrays.sort(array_name)”进行排序。 这将按字典顺序对传递的字符数组进行排序。

char [] 数组= { ' h ' , ' e ' , ' l ' , ' l ' , ' o ' };

数组 排序(数组);

系统 出来 println(数组。toString(数组)) //第1行

系统 出来 println(数组); //第2行

请注意,我们需要导入 java.util.Arrays 才能使 Arrays.sort() 和 Arrays.toString() 工作。

在上面的代码片段中,char 数组按字典顺序排序,打印数组会将合并为字符串的字符打印出来。 “line2”的输出将是“ehllo”,如果您不将输出作为合并字符串,而是希望在末尾使用方括号打印整个数组,那么 Arrays.toString() 就可以完成这项工作。 “line1”的输出将是 [e, h, l, l, o]。

在前面的代码片段中,我们通过填充数组中的条目来声明 char 数组,但是如果我们想将字符串转换为 char 数组怎么办?

无论如何,我们用字符串长度初始化一个 char 数组,遍历字符串,并将每个字符附加到数组中就可以了。

字符串s = 你好

字符[] arr =新字符[s . 长度()];

for ( int i = 0 ;i < s .length() ; i ++ )

arr[i] = s 字符 (i);

系统 出来 println(数组。toString(arr)) ;

上面的代码片段将按预期打印 [h, e, l, l,o]。

上面的代码片段将完成将字符串转换为 char 数组的艺术,但是每次我们要将字符串转换为 char 数组时是否需要编写这么长的代码? 好吧,答案是否定的。

Java 提供了一个称为 toCharArray() 的漂亮方法,该方法必须应用于字符串并返回 char 数组。

字符串s = aejou ;

字符[] arr = s toCharArray();

系统 出来 println(数组。toString(arr)) ; //第1行

arr [ 2 ] = '' ;

系统 出来 println(数组。toString(arr)) ; //第2行

正如预期的那样,“line1”打印 [a, e, j, o, u] 作为输出。 正如已经讨论过的,与字符串不同,我们可以编辑或操作 char 数组的条目。 所以 line2 的输出将是 [a, e, i, o, u]。

现在我们已经看到了在 java 中将字符串转换为 char 数组的方法,如果我们想要一个反之亦然的任务怎么办?

没关系,java 也有执行此类任务的方法。

char [] arr = { ' h ' , ' e ' , ' y ' , ' ' , ' t ' , ' h ' , ' e ' , ' r ' , ' e ' };

字符串s1 =字符串(arr); //方法1

系统 出来 println(s1);

字符串s2 =字符串 值(arr); //方法2

系统 出来 println(s2);

在上面的代码片段中,我们可以看到将 char 数组转换为字符串的两种方法。 正如预期的那样,上述代码段的输出将是“嘿,那里”。

另请阅读:初学者的 17 个有趣的 Java 项目想法和主题

结论

我们开始了解什么是 char 数组,学习了各种初始化和声明 char 数组的方法。 浏览了一个用于循环 char 数组的片段。 使用预定义的 Arrays.sort() 方法对 char 数组进行排序。

并观察了字符串到字符数组转换的简单和预定义的实现,还观察了使用各种方法的反之亦然实现。 现在您已经熟悉 char 数组的概念,开始实现它们吧!

如果您有兴趣了解有关 Java、OOP 和全栈软件开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发执行 PG 计划,该计划专为工作专业人士设计,提供 500 多个小时的严格培训, 9 个以上的项目和任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。

为未来的职业做准备

立即申请软件工程硕士