Java中的字符串数组
在编程中,数组是存储在连续内存位置的同质类型数据的集合,每个数据都可以使用其索引进行访问。
在Java编程语言中,我们有一个 String 数据类型。字符串只不过是一个表示一系列 char 值的对象。字符串在Java中是不可变的。不可变意味着不能在Java中修改字符串。
当我们在 Java 中创建一个 String 类型的数组时,它在Java中称为Java Array。
要使用 String 数组,首先,我们需要声明并初始化它。有不止一种方法可以做到这一点。
宣言:
String 数组可以在程序中声明为不带大小或带大小。以下是相同的代码 -
String[] myString0; // without size
String[] myString1=new String[4]; //with size
在上面的代码中,我们声明了一个没有大小的字符串数组(myString0)和另一个大小为 4 的字符串数组(myString1)。我们可以使用这两种方式在Java中声明我们的字符串数组。
初始化:
//first method
String[] arr0=new String[]{"Apple","Banana","Orange"};
//second method
String[] arr1={"Apple","Banana","Orange"};
//third method
String[] arr2=new String[3];
arr2[0]="Apple";
arr2[1]="Banana";
arr2[2]="Orange";
在第一种方法中,我们在同一行声明值。第二种方法是第一种方法的缩写形式,在最后一种方法中,我们首先创建具有大小的字符串数组,然后将数据存储到其中。
迭代:
要遍历字符串数组,我们可以使用循环语句。
Java
// Java program to demonstrate the various
// methods to iterate over a string array
public class GFG {
public static void main(String[] args)
{
String[] arr = { "Apple", "Banana", "Orange" };
// First method
for (String i : arr) {
System.out.print(i + " ");
}
System.out.println();
// Second method
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
// Third method
int i = 0;
while (i < arr.length) {
System.out.print(arr[i] + " ");
i++;
}
System.out.println();
}
}
Java
// Java program to perform the searching
// operation on a string array
public class GFG {
public static void main(String[] args)
{
String[] arr = { "Apple", "Banana", "Orange" };
String key = "Banana";
boolean flag = false;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == key) {
System.out.println("Available at index "
+ i);
flag = true;
}
}
if (flag == false) {
System.out.println("Not found");
}
}
}
Java
// Java program to perform the sorting
// operation on a string array
import java.util.Arrays;
class GFG {
public static void main(String[] args)
{
String[] arr = { "Apple", "Cat", "Ball",
"Cartoon", "Banana", "Avocado" };
// sorting the String array
Arrays.sort(arr);
for (String i : arr) {
System.out.print(i + " ");
}
}
}
Java
// Java program to demonstrate the
// conversion of String array to String
import java.util.Arrays;
class GFG {
public static void main(String[] args)
{
String[] arr
= { "The", "quick", "brown", "fox", "jumps",
"over", "the", "lazy", "dog" };
// converting to string
String s = Arrays.toString(arr);
System.out.println(s);
}
}
Java
// Java program to demonstrate the
// conversion of String array to String
public class GFG {
public static void main(String[] args)
{
String[] myarr
= { "The", "quick", "brown", "fox", "jumps",
"over", "the", "lazy", "dog" };
StringBuilder sb = new StringBuilder();
sb.append(myarr[0]);
for (int i = 1; i < myarr.length; i++) {
sb.append(" " + myarr[i]);
}
String s = sb.toString();
System.out.println(s);
}
}
Apple Banana Orange
Apple Banana Orange
Apple Banana Orange
所以通常我们有三种方法来迭代一个字符串数组。第一种方法是使用 for-each 循环。第二种方法是使用简单的 for 循环,第三种方法是使用 while 循环。您可以从 Iterating over Arrays in Java中阅读更多关于迭代数组的信息
搜索:
要从字符串数组中查找元素,我们可以使用简单的线性搜索算法。这是相同的实现 -
Java
// Java program to perform the searching
// operation on a string array
public class GFG {
public static void main(String[] args)
{
String[] arr = { "Apple", "Banana", "Orange" };
String key = "Banana";
boolean flag = false;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == key) {
System.out.println("Available at index "
+ i);
flag = true;
}
}
if (flag == false) {
System.out.println("Not found");
}
}
}
Available at index 1
在上面的代码中,我们有一个字符串数组,其中包含三个元素 Apple、Banana 和 Orange。现在我们正在寻找香蕉。 Banana 出现在索引位置 1,这是我们的输出。
排序:
字符串数组的排序是指对元素按字典升序或降序进行排序。
我们可以使用内置的 sort() 方法来做到这一点,也可以从头开始编写自己的排序算法,但为了本文的简单起见,我们使用内置方法。
Java
// Java program to perform the sorting
// operation on a string array
import java.util.Arrays;
class GFG {
public static void main(String[] args)
{
String[] arr = { "Apple", "Cat", "Ball",
"Cartoon", "Banana", "Avocado" };
// sorting the String array
Arrays.sort(arr);
for (String i : arr) {
System.out.print(i + " ");
}
}
}
Apple Avocado Ball Banana Cartoon Cat
这里我们的字符串数组是未排序的,所以在排序操作之后,数组按照我们在字典上看到的相同方式排序,或者我们可以说是按字典顺序。
字符串数组到字符串:
要将字符串数组转换为字符串,我们可以使用 toString() 方法。
Java
// Java program to demonstrate the
// conversion of String array to String
import java.util.Arrays;
class GFG {
public static void main(String[] args)
{
String[] arr
= { "The", "quick", "brown", "fox", "jumps",
"over", "the", "lazy", "dog" };
// converting to string
String s = Arrays.toString(arr);
System.out.println(s);
}
}
[The, quick, brown, fox, jumps, over, the, lazy, dog]
此处 String 数组被转换为字符串,并存储到字符串类型变量中,但这里需要注意的一点是,字符串中也存在逗号(,) 和括号。要从没有它们的字符串数组创建字符串,我们可以使用下面的代码片段。
Java
// Java program to demonstrate the
// conversion of String array to String
public class GFG {
public static void main(String[] args)
{
String[] myarr
= { "The", "quick", "brown", "fox", "jumps",
"over", "the", "lazy", "dog" };
StringBuilder sb = new StringBuilder();
sb.append(myarr[0]);
for (int i = 1; i < myarr.length; i++) {
sb.append(" " + myarr[i]);
}
String s = sb.toString();
System.out.println(s);
}
}
The quick brown fox jumps over the lazy dog
在上面的代码中,我们有一个 StringBuilder 类的对象。我们为字符串数组 (myarr) 的每个元素附加它。之后,我们使用 toString() 方法将 StringBuilder 对象的内容存储为字符串。