热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

将字符串拆分为unicode字样?(特别是越南人)-Splitastringintounicodewords?(particularlyVietnamese)

IhavebeentryingtosplitastringthatcontainstextinVietnameseintoindividualwords.Forexa

I have been trying to split a string that contains text in Vietnamese into individual words. For example:

我一直试图将包含越南语文本的字符串拆分为单个单词。例如:

s = "Chào bạn, mình tên Đạt."

s =“Chàobạn,mìnhtênĐạt。”

Will be splitted into an array:

将被拆分为一个数组:

arr = {"Chào", "bạn", "mình", "tên", "Đạt"}

arr = {“Chào”,“bạn”,“mình”,“tên”,“Đạt”}

Normally in English, this would be easily solve by 1 line only:

通常在英语中,这很容易通过1行解决:

arr = s.split("\\W+");

but since there are many non-alphabetic letters in Vietnamese, it can't be solve by just one line. So the question is: Is there any regular expressions that can replace this "\W+" (I'm not very good with regular expressions)? If not, is there any other ways around it?

但由于越南语中有许多非字母字母,因此只能用一行来解决。所以问题是:是否有任何正则表达式可以替换这个“\ W +”(我对正则表达式不是很好)?如果没有,还有其他方法吗?

1 个解决方案

#1


2  

Split a String by space and punctuation. You can add your punctuation. As some of the characters in regex are reserved, I prefer to use them a in a character class [].

按空格和标点符号拆分字符串。您可以添加标点符号。由于正则表达式中的某些字符是保留的,我更喜欢在字符类[]中使用它们。

arr = s.split("([ ]|[.]|[,]|[:]|[?])+"); //You can customize punctuation.

This is a working example.

这是一个有效的例子。

public static void main(String[] args) {
   String  inputStr = "Chào bạn, mình tên Đạt.";
   String [] splitArray = inputStr.split("([ ]|[.]|[,]|[:]|[?])+");
   for (String s : splitArray) {
       System.out.println(s);
   }
}

Prints:

Chào
bạn
mình
tên
Đạt

Update

In case of simple space character [ ], it works well. However, for this String.

在简单空格字符[]的情况下,它运作良好。但是,对于这个String。

 String  inputStr = "Chào  bạn,\n mình tên\t Đạt.";

Result

Chào
bạn


mình
tên 
Đạt

To fix it, use space character class - \s.

要修复它,请使用空格字符类 - \ s。

  String [] splitArray = inputStr.split("(\\s|[.]|[,]|[:]|[?])+");

Or loop through the array of Strings, and trim them.

或者循环遍历字符串数组,并修剪它们。


推荐阅读
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • 本文介绍了在Java中检查字符串是否仅包含数字的方法,包括使用正则表达式的示例代码,并提供了测试案例进行验证。同时还解释了Java中的字符转义序列的使用。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
author-avatar
2335286cc
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有