迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

在 Java 中通过索引获取字符串中的字符

作者:迹忆客 最近更新:2023/03/26 浏览次数:

本教程介绍了如何在 Java 中通过索引获取 String 字符,并列出了一些示例代码来理解该主题。

字符串用于存储字符序列。就像数组一样,字符串也遵循从零开始的索引。这意味着字符串的第一个字符被分配了一个索引值为零。我们可以使用它们的索引从字符串中获取单个字符。在本教程中,我们将学习如何做到这一点。


Java 中使用 charAt() 方法获取字符串字符

charAt() 方法将索引值作为参数并返回字符串中该索引处的字符。它是从字符串中获取字符的最简单方法,是一个 String 类方法。

public class Demo
{
	public static void main(String[] args)
	{
		String s = "test string";
		char characterAtIdx1 = s.charAt(1);//character e
		char characterAtIdx4 = s.charAt(4);//whitespace
		char characterAtIdx5 = s.charAt(5);//character s
		
		System.out.println("The string is: " + s);
		System.out.println("Character at Index 1: " + characterAtIdx1);
		System.out.println("Character at Index 4: " + characterAtIdx4);
		System.out.println("Character at Index 5: " + characterAtIdx5);
	}
}

输出:

The string is: test string
Character at Index 1: e
Character at Index 4:  
Character at Index 5: s

正如我们在上面的代码中看到的,这个方法的返回类型是 char。我们可以使用 Character 类的 toString() 方法将此字符类型转换为字符串,甚至可以使用 length() 方法获取此字符串的长度。

public class Demo
{
	public static void main(String[] args)
	{
		String s = "test string";
		char characterAtIdx6 = s.charAt(6);//character t
		String stringAtIdx6 = Character.toString(characterAtIdx6);//char to string
		System.out.println("Length: " + stringAtIdx6.length());
		System.out.println("String: " + stringAtIdx6);
	}
}

输出:

Length: 1
String: t

使用 String.valueOf() 方法将字符转换为字符串

从字符串中获取字符后,如果需要,我们可以使用 String.valueOf() 方法将字符转换为字符。

public class Demo
{
	public static void main(String[] args)
	{
		String s = "test string";
		char characterAtIdx6 = s.charAt(6);//character t
		String stringAtIdx6 = String.valueOf(characterAtIdx6);//char to string
		
		System.out.println("Length: " + stringAtIdx6.length());
		System.out.println("String: " + stringAtIdx6);
	}
}

输出:

Length: 1
String: t

我们还可以将一个空字符串连接到字符上以将其转换为字符串。中间没有任何内容的引号表示空字符串。这是在 Java 中获取 String 对象的最简单和隐式的方法之一。

public class Demo
{
	public static void main(String[] args)
	{
		String s = "test string";
		char characterAtIdx6 = s.charAt(6);//character t
		String stringAtIdx6 = "" + characterAtIdx6;//char to string
		
		System.out.println("Length: " + stringAtIdx6.length());
		System.out.println("String: " + stringAtIdx6);
	}
}

输出:

Length: 1
String: t

Java 中从字符串获取字符数组

我们可以借助方括号通过索引获取数组元素。如果我们将字符串转换为字符类型数组,我们可以从中获取任何字符。

Java 提供了一个方便的 toCharArray() 方法,它返回一个字符数组。我们可以在字符串上使用这个方法并为它获取一个字符数组。

public class Demo
{
	public static void main(String[] args)
	{
		String s = "test string";
		char[] charArr = s.toCharArray();
		
		System.out.println("The string is: " + s);
		System.out.println("Character at Index 1: " + charArr[1]);
		System.out.println("Character at Index 4: " + charArr[4]);
		System.out.println("Character at Index 5: " + charArr[5]);
	}
}

输出:

The string is: test string
Character at Index 1: e
Character at Index 4:  
Character at Index 5: s

我们可以使用上一节中描述的方法将字符转换为字符串。

public class Demo
{
	public static void main(String[] args)
	{
		String s = "test string";
		char[] charArr = s.toCharArray();
		
		char characterAtIdx6 = charArr[6];//character t
		String str1 = Character.toString(characterAtIdx6);//char to string
		String str2 = String.valueOf(characterAtIdx6);//char to string
		String str3 = "" + characterAtIdx6;//char to string
		
		System.out.println("Using toString()");
		System.out.println("Length: " + str1.length() + " String: " + str1);
		
		System.out.println("\nUsing valueOf()");
		System.out.println("Length: " + str2.length() + " String: " + str2);
		
		System.out.println("\nUsing empty string concatenation");
		System.out.println("Length: " + str3.length() + " String: " + str3);
	}
}

输出:

Using toString()
Length: 1 String: t
Using valueOf()
Length: 1 String: t
Using empty string concatenation
Length: 1 String: t

获取 Unicode 补充多语言平面 (SMP) 的字符

在极少数情况下,我们的字符串可能包含基本 Unicode 多语言平面中不存在的字符。一个例子可能是一串表情符号或表情符号。这些字符是 Unicode 补充多语言平面 (SMP) 的一部分。

上述方法不适用于这些字符。我们可以使用 codePointAt() 方法从字符串中获取此类字符。此方法返回一个整数,表示该索引处字符的 Unicode 值。确保你安装了适当的字体来查看这些字符。

public class Demo
{
	public static void main(String[] args)
	{
		String s = "😀 the grinning emoji";
		for(int i=0; i<s.length();)
		{
			int codePoint = s.codePointAt(i);
			char[] charArr = Character.toChars(codePoint);//More than one characters may be required to represent an SMP char 
			System.out.print(new String(charArr) + " ");
			
			i = i + Character.charCount(codePoint);//Increase i according to the number of chars required for that SMP char
		}
	}
}

输出:

😀   t h e   g r i n n i n g   e m o j i 

如果我们尝试使用 charAt() 方法打印相同的字符串,我们会得到以下输出。

public class Demo
{
    public static void main(String args[])
    {
      String s = "😀 the grinning emoji";
		for(int i=0; i<s.length(); i++)
		{
			char c = s.charAt(i);
			System.out.print(c + " ");
		}
    }
}

输出:

? ?   t h e   g r i n n i n g   e m o j i 

总结

字符串,就像数组一样,遵循从零开始的索引。我们可以使用 charAt() 方法从字符串中获取单个字符。我们还可以将字符串转换为字符数组,然后使用它们的索引获取单个字符。如果你希望单个字符作为字符串而不是字符,则使用 Character.toString()String.valueOf() 方法来转换它。有时我们的字符串可能包含基本多语言平面之外的字符。在这种情况下,我们可以使用 codePointAt() 方法而不是 charAt() 方法。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 Mysqldump 备份 MySQL 中的数据

发布时间:2023/05/09 浏览次数:192 分类:MySQL

本篇文章将介绍如何使用 mysqldump 只备份数据。 在这里,我们将探讨 --no-create-info 、--compact 、--skip-triggers 和 --no-create-db 选项。

更新 MySQL 表中的主键

发布时间:2023/05/09 浏览次数:61 分类:MySQL

本篇文章介绍如何更新 MySQL 表中的主键。 我们将使用 ALTER 命令对主键进行任何更改。更新 MySQL 表中的主键 我们可以在多种情况下更新 MySQL 表中的主键。

在 MySQL 中获取命令历史记录

发布时间:2023/05/09 浏览次数:150 分类:MySQL

本文重点介绍了在 Windows 和 Linux 中获取我们已执行的 MySQL 命令历史记录的各种方法。MySQL命令历史

Oracle 的 decode 函数在 MySQL 中的等价物

发布时间:2023/05/09 浏览次数:115 分类:MySQL

本篇文章介绍了三种替代实现,我们可以将它们用作 MySQL 中 Oracle 的 decode() 函数的等价物。 为此,我们将使用 IF()、CASE 以及 FIELD() 和 ELT() 的组合。

在 Linux 中安装 MySQL 客户端

发布时间:2023/05/09 浏览次数:72 分类:MySQL

在 Linux 中安装 MySQL 客户端的命令。Linux 和 Unix 等环境作为命令行界面工作,仅在命令的帮助下运行。

在 MySQL 中转换为十进制

发布时间:2023/05/09 浏览次数:150 分类:MySQL

有时,我们可能需要将一种数据类型转换为另一种数据类型。 下面是我们如何使用带有 DECIMAL(M,D) 的 CAST() 和 CONVERT() 函数在 MySQL 中转换为十进制。

在 MySQL 中获取当前日期和时间

发布时间:2023/05/09 浏览次数:145 分类:MySQL

本篇文章我们将学习 NOW()、CURRENT_TIMESTAMP()(也写为 CURRENT_TIMESTAMP)和 SYSDATE() 来获取 MySQL 中的当前日期和时间。 我们还将看到这三个功能之间的比较。在 MySQL 中获取当前日期和时间

更改 MySQL 服务器中的 max_allowed_packet Size

发布时间:2023/05/09 浏览次数:142 分类:MySQL

本篇文章介绍如何更改 MySQL 服务器中的 max_allowed_packet 大小。 为了了解这一点,我们将使用两个操作系统,Windows 10 和 Linux (Ubuntu)。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便