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。
声明变量或数据结构后,下一步就是字符串类型数组的初始化。当初始化固定静态值时,这很有用。数组还可以动态初始化值,这完全取决于需求。
当要在运行时确定用户输入时,动态分配更有帮助,而如果您从原型设计的角度编写程序,或者只是为了了解编写的代码的风格,则需要静态初始化字符串类型数组也可以工作。
让我们尝试借助上面两个例子来理解初始化的概念,这两个例子只是在声明数组字符串变量的情况下进行解释的。
示例:
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 中如何进行排序之前,让我们首先了解排序的实际含义。排序意味着以特定方式排列数组的值,无论是升序还是降序。我们可以通过编写自己的自定义排序函数或使用 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));
输出:
在这种情况下需要注意的一点是字符串实现了可比较的接口,因此这个东西在自然排序的情况下起作用。 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); } }
输出:
在上面的示例中,我们引入了一个新的关键字break,它确保程序的循环一直保持到应用break关键字为止。该关键字适用于循环以及条件语句(例如 if-else)。因此,一旦我们能够找到我们的字符串,我们就使用break关键字退出。 Java 中用于搜索的两种非常流行的算法是二分搜索和线性搜索。
以上是Java 中的字符串数组的详细内容。更多信息请关注PHP中文网其他相关文章!