首页 >Java >java教程 >Java 中的字符串数组

Java 中的字符串数组

王林
王林原创
2024-08-30 15:28:26574浏览

Java 字符串数组就像 Java 中的任何其他字符串函数一样,用于进行字符串操作。顾名思义,数组用于存储同质组的数据,即里面存储的所有数据要么都是String类型,要么是double类型,要么是int类型等。因此,string数组是java中使用的数据结构存储字符串类型值,用于保存固定数量的字符串值。这是 Java 编程语言中最常用的非常基本的数据结构级别之一。当你谈论Java main方法时,即使该方法也是字符串数组类型。

声明

字符串数组的声明非常有用,就像java中没有声明变量一样;不可能使用它。 java 中有多种声明字符串数组的方法,无需实例化对象,只需对象引用即可。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

让我们看看字符串数组的声明方式。

String [] strArr; //This is declaration of strArr array without specifying size
String[] strArr1 = new String [3]; //This is the declaration of strArr array with specifying string type of size 3

在这种情况下,String [] strArr 也可以写为 String strArr[],但前一种是更推荐的,也是接近语法的标准方法。
两种声明中需要注意的一点是,前一个值返回值为 null,而后一个值返回值为 [null, null, null],因为大小为 3。

Java中字符串类型数组的初始化

声明变量或数据结构后,下一步就是字符串类型数组的初始化。当初始化固定静态值时,这很有用。数组还可以动态初始化值,这完全取决于需求。

当要在运行时确定用户输入时,动态分配更有帮助,而如果您从原型设计的角度编写程序,或者只是为了了解编写的代码的风格,则需要静态初始化字符串类型数组也可以工作。
让我们尝试借助上面两个例子来理解初始化的概念,这两个例子只是在声明数组字符串变量的情况下进行解释的。

示例:

String [] strArr= {"X", "Y", "Z"};
strArr1[0]="X";
strArr1[1]="Y";
strArr1[2]="Z";
String [] strArr2= new String [] {"X", "Y", "Z"};

如果我们开始比较上例中的两个字符串对象值,它们将返回 false 结果。出现这种行为的原因是数组是对象,并且对象类使用它作为当前对象值,因此值为 false。但另一方面,如果比较的值是实际值而不是对象,则返回 true 结果。

在 Java 中对字符串数组进行排序

在我们尝试了解 Java 中如何进行排序之前,让我们首先了解排序的实际含义。排序意味着以特定方式排列数组的值,无论是升序还是降序。我们可以通过编写自己的自定义排序函数或使用 Array 类排序方法来实现排序技术。

示例:

String [] letters= {e, d, c, b, a};
System.out.println("Values before sorting" + Array.toString(letters));
Arrays.sort(letters);
System.out.println("Values after sorting" + Array.toString(letters));

输出:

Java 中的字符串数组

在这种情况下需要注意的一点是字符串实现了可比较的接口,因此这个东西在自然排序的情况下起作用。 Arrays.sort() 还可以用于通过使用比较器以其他方式对数组的值进行排序。编写自定义排序函数也是一种选择,但仅当禁止使用已内置的库排序函数时才应使用它,因为它是编译器密集型的。在 Java 中,两种最流行的排序方法是冒泡排序和选择排序。我们不会详细介绍这些算法,因为这超出了本文的范围。

如何从字符串数组中搜索字符串?

如果您希望从字符串数组中搜索特定字符串,我们可以使用循环构造或子字符串。当字符串比原字符串较小时,就可以使用子字符串函数。如果字符串比实际字符串复杂,则可以使用循环结构在字符串中搜索字符串。

让我们借助示例来理解字符串的所有搜索。

示例:

import java.io.*;
public class SearchStringEG {
public static void main(String args[]) throws IOException {
String[] strArr = { "X", "Y", "z" };
boolean flag = false;
String s = "Y";
int ind = 0;
int l =strArr.length();
int i;
for (i = 0; i < l; ++i) {
if(s.equalsIgnoreCase(strArr[i])) {
ind = i;
flag = true;
break;
}
}
if(flag==true)
System.out.print ("String " + s +" is found at index position "+ind);
else
System.out.print("String " + s +" is found at index position "+ ind);
}
}

输出:

Java 中的字符串数组

在上面的示例中,我们引入了一个新的关键字break,它确保程序的循环一直保持到应用break关键字为止。该关键字适用于循环以及条件语句(例如 if-else)。因此,一旦我们能够找到我们的字符串,我们就使用break关键字退出。 Java 中用于搜索的两种非常流行的算法是二分搜索和线性搜索。

以上是Java 中的字符串数组的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn