首页 > 编程语言 >Java中的字符串到数组 – 如何将字符串转换为数组

Java中的字符串到数组 – 如何将字符串转换为数组

时间:2023-07-08 09:13:04浏览次数:56  
标签:转换 StringTokenizer 数组 分隔符 字符串 Java split

当您开发文本处理应用程序或处理数据时,能够将字符串转换为数组非常有帮助。

Java中的字符串是一组字符,而数组是同一类型元素的集合。您可以使用转换过程将字符串解构为各个部分,然后将这些部分存储在数组中以供进一步操作或分析。

本文将为您介绍各种将字符串转换为数组的 Java 技术。当我们研究几种策略时,我们将讨论它们的语法、应用程序、优点和缺点。了解如何使用这些方法将使您能够选择最适合您的编程要求的一种方法。

(更|多优质内|容:java567 点 c0m)

 

toCharArray()如何使用方法将字符串转换为数组

该toCharArray()方法是Java中的内置函数,允许您将字符串转换为字符数组。该方法在 String 类中可用,并提供了一种将字符串中的每个字符转换为数组元素的便捷方法。

toCharArray()该方法的语法和用法

 public class StringToArrayExample {
     public static void main(String[] args) {
         String str = "Hello, World!";
         
         // Convert the string to an array of characters
         char[] charArray = str.toCharArray();
         
         // Print the array elements
         for (char c : charArray) {
             System.out.println(c);
        }
    }
 }

说明:

  1. 声明一个字符串变量str并将所需的字符串分配给它。

  2. 使用toCharArray()字符串上的方法str将其转换为字符数组。此方法将字符串拆分为单个字符并返回包含这些字符的数组。

  3. 将结果字符数组存储在变量 中charArray。

  4. charArray使用循环进行迭代for-each以单独打印每个字符。

输出:

 H
 e
 l
 l
 o
 ,
 
 W
 o
 r
 l
 d
 !

使用的优点toCharArray():

  • 简单性:该toCharArray()方法提供了一种简单的方法,只需一次方法调用即可将字符串转换为字符数组。

  • 可读性:生成的字符数组可以轻松地操作、处理或使用循环进行迭代。

  • 不可变字符串:由于 Java 中的字符串是不可变的,因此当您需要修改单个字符时,将它们转换为字符数组会很有用。

使用的缺点toCharArray():

  • 内存开销:该toCharArray()方法创建一个新的字符数组,需要额外的内存。如果您使用大字符串,这可能是一个问题。

  • 性能:与其他方法相比,创建新的字符数组并复制字符可能会带来一些性能开销,特别是对于长字符串。

split()如何使用方法分割字符串

Java 中的方法split()是一种根据指定分隔符将字符串拆分为子字符串数组的便捷方法。它是Java中广泛使用的将字符串转换为数组的方法。

该方法的语法和用法split():

该split()方法在 Java 的 String 类中可用,语法如下:

 String[] split(String delimiter)

该方法采用分隔符作为参数,它确定应分割字符串的点。分隔符可以是正则表达式或简单字符串。

使用示例代码演示转换split():

 string = "Hello,World,How,Are,You?"
 delimiter = ","
 ​
 split_string = string.split(delimiter)
 print(split_string)

说明:

  1. 我们定义一个名为的字符串变量string,其中包含我们要拆分的文本:“Hello,World,How,Are,You?”。

  2. 我们指定要用于分割字符串的分隔符,即逗号 ( ,),并将其分配给变量delimiter。

  3. 我们split()对string变量使用该方法,并将delimiter作为参数传递。无论找到分隔符,这都会将字符串拆分为子字符串。

  4. 该split()方法返回子字符串列表,我们将其分配给变量split_string。

  5. 最后,我们打印split_string列表以查看输出。

输出:

 ['Hello', 'World', 'How', 'Are', 'You?']

使用的优点split():

  • 方便易用。

  • 允许根据指定的分隔符分割字符串。

  • 支持正则表达式作为分隔符,提供灵活的分割选项。

使用的缺点split():

  • 如果在字符串中找不到分隔符,则原始字符串将作为结果数组中的单个元素返回。

  • 正则表达式处理起来可能很复杂,不正确的使用可能会导致意外的结果。

  • 使用复杂的正则表达式分割大字符串的计算成本可能很高。

如何使用 StringTokenizer 将字符串转换为数组

Java 中的StringTokenizer类是一个遗留类,它提供了一种方便的方法来将字符串标记或拆分为单独的标记。它通常用于通过根据指定的分隔符分割字符串将其转换为数组。

的语法和用法StringTokenizer

要使用StringTokenizer,您需要执行以下步骤:

首先,创建StringTokenizer类的实例,并将字符串和分隔符作为参数传递:

 StringTokenizer tokenizer = new StringTokenizer(inputString, delimiter);

示例代码:

 import java.util.StringTokenizer;
 ​
 public class StringToArrayExample {
     public static void main(String[] args) {
         String inputString = "Hello,World,How,Are,You?";
 ​
         // Creating a StringTokenizer object with delimiter ","
         StringTokenizer tokenizer = new StringTokenizer(inputString, ",");
 ​
         int tokenCount = tokenizer.countTokens();
         String[] stringArray = new String[tokenCount];
 ​
         // Converting each token to array elements
         for (int i = 0; i < tokenCount; i++) {
             stringArray[i] = tokenizer.nextToken();
        }
 ​
         // Printing the output array
         for (String element : stringArray) {
             System.out.println(element);
        }
    }
 }

说明:

  1. 该代码首先创建一个以输入字符串和分隔符命名StringTokenizer的对象。tokenizer``","

  2. 该countTokens()方法用于获取输入字符串中存在的标记总数。该值存储在tokenCount变量中。

  3. 创建一个名为 的数组stringArray,其大小等于tokenCount。

  4. 该nextToken()方法在循环中使用来迭代每个标记并将其分配给stringArray.

  5. 最后,for使用循环来打印 中的每个元素stringArray。

输出:

 Hello
 World
 How
 Are
 You?

StringTokenizer的应用

StringTokenizer 在各种场景中都很有用,包括:

  • 解析使用一致分隔符构建的输入数据。

  • 从句子或段落中提取单个单词或组件。

  • 将逗号分隔值 (CSV) 拆分为单独的元素。

  • 对文本进行词法分析或语言处理任务的标记。

使用的优点StringTokenizer:

  • 简单性:StringTokenizer 的语法简单易懂,适合初学者。

  • 效率:与正则表达式或手动基于字符的拆分相比,StringTokenizer 在内存和性能方面非常高效。

  • 灵活的分隔符:您可以指定多个分隔符或使用一组预定义的分隔符,从而实现多功能标记化。

  • 迭代处理:StringTokenizer 允许您迭代处理令牌,从而可以方便地处理大字符串,而无需立即将所有内容加载到内存中。

使用的缺点StringTokenizer:

  • 功能有限:StringTokenizer 缺乏现代替代方案中的一些高级功能,例如正则表达式,它在标记复杂模式方面提供了更大的灵活性。

  • 不支持正则表达式:与该方法等其他方法不同split(),StringTokenizer 无法使用正则表达式作为分隔符,从而限制了其标记化功能。

  • 不支持空令牌:默认情况下,StringTokenizer 不处理空令牌。如果您有连续的分隔符,它们将被视为单个分隔符,可能会导致意外结果。

  • 遗留类:StringTokenizer 是遗留 Java 集合框架的一部分,并且不实现 Iterable 接口,这意味着它不能在增强的 for 循环中使用。

如何手动将字符串中的每个字符转换为数组元素

在某些情况下,您可能需要对转换过程进行更多控制或希望根据特定要求对其进行自定义。

在这种情况下,您可以通过手动迭代字符串中的每个字符并将它们分配给数组中的各个元素,将字符串转换为数组。

演示手动转换的示例代码:

 string = "Hello, World!"
 array = []
 ​
 for char in string:
     array.append(char)
 ​
 print(array)

说明:

  1. string我们定义一个名为“Hello, World!”的字符串变量。

  2. 我们初始化一个名为 的空列表array。

  3. 我们使用for循环来迭代char中的每个字符string。

  4. 在循环内部,我们使用该append()方法将每个字符添加char到array.

  5. 循环完成后,我们打印array来查看输出。

输出:

 ['H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!']

手动转换方法的优点:

  • 提供对转换过程的完全控制。

  • 允许在将字符分配给数组之前对其进行自定义或操作。

  • 当您需要在转换期间执行其他操作时效果很好。

手动转换方法的缺点:

  • toCharArray()与或等内置方法相比,需要更多代码和手动处理split()。

  • 由于手动迭代过程,对于大字符串可能效率较低。

  • 如果实施不正确,就会增加出错的风险。

注意:当转换过程中特别需要执行自定义操作时,应选择手动转换方式。否则,为了简单和高效,建议使用诸如toCharArray()或 之类的内置方法。split()

不同方法的比较

  1. toCharArray():

  • 方法简单直接。

  • 返回表示字符串的字符数组。

  • 适用于无特殊要求的一般转换。

\2. split():

  • 根据指定的分隔符将字符串拆分为数组。

  • 当您想要将字符串分成子字符串时很有用。

  • 提供选择分隔符模式的灵活性。

\3. 字符串标记器:

  • 专门为基于分隔符的字符串标记而设计。

  • 允许自定义分隔符。

  • 当您需要对标记化过程进行细粒度控制时适合。

\4. 手动转换:

  • 提供对转换过程的完全控制。

  • 允许对角色进行自定义和附加操作。

  • 当转换过程中需要特定要求或操作时推荐使用。

为什么你应该知道如何在 Java 中将字符串转换为数组?

在 Java 中将字符串转换为数组的重要性在于它为操作和处理数据提供的多功能性和灵活性。以下是为什么能够将字符串转换为数组在 Java 中很重要的几个关键原因:

  • 数据操作:数组提供了一种在 Java 中存储和操作数据的结构化方法。通过将字符串转换为数组,您可以访问单个字符或子字符串、修改数据以及执行各种操作,例如排序、搜索或过滤。

  • 算法操作:Java 中的许多算法和数据结构都需要数组形式的输入数据。通过将字符串转换为数组,您可以轻松应用这些算法并执行排序、反转或提取特定元素等操作。

  • 文本解析和分析:字符串通常包含结构化或分隔数据,例如 CSV(逗号分隔值)或 JSON(JavaScript 对象表示法)。将字符串转换为数组允许您拆分和解析数据,从而能够进一步分析、处理或提取特定信息。

  • 字符串操作:虽然字符串有自己的一组操作方法,但数组提供了额外的灵活性。将字符串转换为数组允许您利用特定于数组的操作(例如索引、切片或连接)来更有效地操作数据或实现特定的格式要求。

  • 互操作性:在某些情况下,您可能需要将字符串转换为数组,以便与需要基于数组输入的库或 API 进行交互。通过执行转换,您可以将字符串数据与外部组件无缝集成,确保兼容性并实现无缝数据交换。

结论

在本文中,我们讨论了在 Java 中将字符串转换为数组的各种方法。

我们首先介绍了 Java 中字符串和数组之间这种转换的重要性。

然后,我们探索了四种不同的方法:使用toCharArray()方法、使用 方法分割字符串split()、利用 aStringTokenizer以及手动将每个字符转换为数组元素。我们详细介绍了每种方法,包括它们的语法、用法、示例代码以及优缺点。

(更|多优质内|容:java567 点 c0m)

标签:转换,StringTokenizer,数组,分隔符,字符串,Java,split
From: https://www.cnblogs.com/web-666/p/17536611.html

相关文章

  • 查找多个字符串的正则表达式
    非元组捕获的语法为:(?:exp) 比如查找江浙沪包邮区:(?:浙江|上海|江苏) 元组的概念(待补充)Python中的元组Python中元组(Tuple)是一种特殊的列表,是Python中可以用于存储数据集合数据类型。它的特殊性是:元组是一个是有序的且不可改变的集合......
  • 深度剖析之由浅入深揭秘JavaScript类型转换(最全总结篇)
    前言系列首发于公众号『前端进阶圈』,若不想错过更多精彩内容,请“星标”一下,敬请关注公众号最新消息。深度剖析之由浅入深揭秘JavaScript类型转换(最全总结篇)值类型转换将值从一种类型转换为另一种类型通常称为类型转换,分为隐式强制类型转换和显示强制类型转换。两者的区别在于......
  • 2023-07-07:给出两个字符串 str1 和 str2。 返回同时以 str1 和 str2 作为子序列的最短
    2023-07-07:给出两个字符串str1和str2。返回同时以str1和str2作为子序列的最短字符串。如果答案不止一个,则可以返回满足条件的任意一个答案。输入:str1="abac",str2="cab"。输出:"cabac"。答案2023-07-07:大体步骤如下:1.初始化字符串str1和str2分别为"abac"......
  • AOP日志切面拦截出现异常:java.lang.IllegalStateException: It is illegal to call th
    问题描述一个下载功能,后端代码出现异常,被AOP的日志切面拦截,出现异常。具体异常如下:java.lang.IllegalStateException:Itisillegaltocallthismethodifthecurrentrequestisnotinasynchronousmode(i.e.isAsyncStarted()returnsfalse) atorg.apache.catali......
  • 2023-07-07:给出两个字符串 str1 和 str2。 返回同时以 str1 和 str2 作为子序列的最短
    2023-07-07:给出两个字符串str1和str2。返回同时以str1和str2作为子序列的最短字符串。如果答案不止一个,则可以返回满足条件的任意一个答案。输入:str1="abac",str2="cab"。输出:"cabac"。答案2023-07-07:大体步骤如下:1.初始化字符串str1和str2分别为"abac"和"cab"......
  • Java官方笔记14流
    ProcessingDatainMemoryTheStreamAPIisprobablythesecondmostimportantfeatureaddedtoJavaSE8,afterthelambdaexpressions.Inanutshell,theStreamAPIisaboutprovidinganimplementationofthewellknownmap-filter-reducealgorithmtoth......
  • [oeasy]python0071_字符串类型_str_string_下标运算符_中括号
    回忆上次内容上次分辨了静态类型语言动态类型语言 python属于对类型要求没有那么严格的动态类型语言 对初学者很友好不过很多时候也容易弄不清变量类型 直接修改代码增强程序的可读性把变量的类型明确标......
  • Java技术分享:SpringBoot+mysql+...
    放个效果图: 准备项目首先在MySql控制台输入一下sql语句创建student数据库和student。createdatabsestudent;usestudent;CREATETABLE`student`(`stu_id`bigint(20)NOTNULL,`stu_name`varchar(45)DEFAULTNULL,`stu_sex`varchar(6)DEFAULTNUL......
  • 使用Java实现基于OAuth 2.0的单点登录功能
    本文将介绍如何使用Java编写一个基于OAuth2.0的单点登录系统,通过OAuth2.0实现用户在多个应用程序间的无缝登录体验1.什么是OAuth2.0?OAuth2.0是一种开放的授权框架,用于在应用程序之间安全地共享用户的身份验证和授权信息。它允许用户授权第三方应用程序代表其访问受保护的资......
  • Java 抽象类的定义与使用
    抽象类抽象类举例: abstractPeople{publicabstractvoideat();publicabstractvoidsleep();}   抽象类的几个特点1.抽象类被修饰符abstract修饰 abstract类名{类体} 2.抽象类内可以存在抽象方法与非抽象方......