Java 字符串数组

Java String 数组被用来持有固定数量的 Strings. String array简单的 Java 程序中非常常见,特别是在初学者中,用于 Java 并测试一些特定的场景。即使是 java 主要方法的论点是 string 数组 - public static void main(String[] args)

  • Java String 数组基本上是一个对象的数组. *有两种方式来声明字符串数组 - 没有大小的声明和大小的声明 *有两种方式来初始化字符串数组 - 在声明时,在声明之后填充值 *我们可以对字符串数组进行不同类型的处理,如迭代,排序,搜索等

现在让我们来看看 java string array 示例程序。

Java String Array 声明

下面的代码片段显示了 Java 中的 string array 声明的不同方式。

1String[] strArray; //declare without size
2
3String[] strArray1 = new String[3]; //declare with size

请注意,我们也可以将字符串数列写成String strArray[],但上面显示的路径是标准和推荐的方式。

Java String Array 初始化

让我们来看看如何在 Java 中初始化字符串数组。

1//inline initialization
2String[] strArray1 = new String[] {"A","B","C"};
3String[] strArray2 = {"A","B","C"}; 
4
5//initialization after declaration
6String[] strArray3 = new String[3];
7strArray3[0] = "A";
8strArray3[1] = "B";
9strArray3[2] = "C";

所有三个字符串的数组都将具有相同的值,但是,如果您将对它们称呼等式方法,则将返回 false。

1System.out.println(strArray1.equals(strArray2)); // false
2System.out.println(Arrays.toString(strArray1).equals(Arrays.toString(strArray2)));// true

原因是,数组是 Objects 和 Object 类实现等于() 方法如下。

1public boolean equals(Object obj) {
2        return (this == obj);
3    }

第二个陈述是正确的,因为当转换为 String 时,它们的值是相同的,并且 String 类等同() 方法实现检查值。

关于 Java String Array 的评论

我们可以通过使用 [java for loop]( / 社区 / 教程 /java-for-loop)或 [java foreach]( / 社区 / 教程 /java-foreach-java-8-foreach)循环来重复串数。

1String[] strArray2 = {"A","B","C"}; 
2for (int i = 0; i < strArray2.length; i++) {
3    System.out.print(strArray2[i]);
4}
5
6for (String str : strArray2) {
7    System.out.print(str);
8}

在 String Array 中搜索一个字符串

我们可以用循环来搜索数组中的字符串,下面就是一个简单的例子。

 1package com.journaldev.stringarray;
 2
 3public class JavaStringArrayExample {
 4
 5    public static void main(String[] args) {
 6    	String[] strArray = { "A", "B", "C" };
 7    	
 8    	boolean found = false;
 9    	int index = 0;
10    	String s = "B";
11    	for (int i = 0; i < strArray.length; i++) {
12    		if(s.equals(strArray[i])) {
13    			index = i; found = true; break;
14    		}
15    	}
16    	if(found)
17    		System.out.println(s +" found at index "+index);
18    	else
19    		System.out.println(s +" not found in the array");
20    	
21    }
22
23}

注意使用 [break]( / 社区 / 教程 / java-break-statement-label)的关键字,一旦我们找到字符串,就退出循环。

Java String Array 分类

我们可以实施自己的分类算法,或者我们可以使用 Arrays类分类方法。

1String[] vowels = {"a","i","u","e","o"};
2    	
3System.out.println("Before sorting "+Arrays.toString(vowels));
4
5Arrays.sort(vowels);
6    	
7System.out.println("After sorting "+Arrays.toString(vowels));

上面的代码片段的输出将是:

1Before sorting [a, i, u, e, o]
2After sorting [a, e, i, o, u]

请注意, String 实现了相似界面,所以它适用于自然排序。 如果您想以其他方式排序,您可以通过通过 Comparator 来使用 Arrays.sort() 过载方法。 了解这些排序技术在 Java 中的比较和比较

将 String 转换为 String Array

我们可以使用它的split()方法将 String 转换为字符串数组,当您使用分界符号来输入一个单一的字符串时,这是有用的。

1String str = "a,e,i,o,u";
2String[] vowels = str.split(",");
3System.out.println(Arrays.toString(vowels)); //[a, e, i, o, u]

将 String Array 转换为 String

我们可以使用 Arrays.toString() 方法将 String 数组转换为 String. 请注意,数组不执行 toString() 方法,所以如果你要尝试获得它的字符串表示,那么你必须依靠 Arrays 类,或者写自己的自定义代码。

1String[] vowels = { "a", "e", "i", "o", "u" };
2System.out.println(vowels);
3System.out.println(Arrays.toString(vowels));

输出将如下。

1[Ljava.lang.String;@3d04a311
2[a, e, i, o, u]

第一个输出是由于 Object 类 toString() 实现如下。

1public String toString() {
2        return getClass().getName() + "@" + Integer.toHexString(hashCode());
3    }

Java String Array 列表

我们可以使用Arrays.toList()方法获得字符串数组的列表表示,请注意,此列表是由数组支持的,任何结构性修改都会导致java.lang.UnsupportedOperationException

1String[] vowels = { "a", "e", "i", "o", "u", "a", "o" };
2
3List<String> vowelsList = Arrays.asList(vowels);
4System.out.println("vowelsList = "+vowelsList);
5//vowelsList.add("x"); //java.lang.UnsupportedOperationException
6
7vowelsList.set(0, "x"); //allowed because no structural modification
8System.out.println("vowelsList = "+vowelsList);

这是所有用于Java字符串数组。 参考: Arrays Oracle Documentation

Published At
Categories with 技术
Tagged with
comments powered by Disqus