📜  Java中的字符串数组

📅  最后修改于: 2022-05-13 01:54:56.917000             🧑  作者: Mango

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 对象的内容存储为字符串。