String[] split(String regex)
根据给定的正则表达式的匹配来拆分此字符串。
注意:竖线"|" 要转义写成 "\\|",还有一些其他的特殊字符是需要转义的 如 \\. \\? 等
1.用多个标点拆分
strs = str.split("[、,。;?!,.;?!]");
strs = str.split("、|,|。|;|?|!|,|\\.|;|\\?|!|]");
2.还想保留分隔符,
笨方法:在要拆分的标点后边加一个新的拆分符,用新的拆分符拆分
//这么替换,是为了拆分后,还能保存标点符号,//可再优化 line = line.replaceAll("、", "、|"); line = line.replaceAll(",", ",|"); line = line.replaceAll("。", "。|"); line = line.replaceAll(";", ";|"); line = line.replaceAll("?", "?|"); line = line.replaceAll("!", "!|"); line = line.replaceAll(",", ",|"); line = line.replaceAll("\\.", ".|"); line = line.replaceAll(";", ";|"); line = line.replaceAll("\\?", "?|"); line = line.replaceAll("!", "!|"); strs = line.split("\\|");
3.还想单独保留分隔符,
自己写了个方法,仅供参考:
用StringBuilder,一个一个字符的去拼。
phrase = new Phrase(str,String.valueOf(ch),l+1,++no);
Phrase 是自定义类,第一个参数是短句,第二个参数是分隔符
reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath),encoding)); //考虑到编码格式 String line; StringBuilder sb; //int num = 0; //总句码 int l=0; //行序号 while((line = reader.readLine()) != null){ //line = new String(line.getBytes("ISO-8859-1"),"UTF-8"); //System.out.println(line); //line = line.replaceAll("[,。;?!,.;?!]", "|"); line = line.replaceAll("| ", ""); sb = new StringBuilder(); String str=""; //String punctuation = ""; //line = ",abcdev,";//abcdev,asdfasdf.asfejfl;3f23f!;efefef"; char[] chars = line.toCharArray(); int no = 0; for(char ch : chars){ if(ch == 65279){ //'' //'' //65279 utf-8 bom continue; } if("、,。;?!,.;?!".indexOf(ch) == -1){ sb.append(ch); } else { //System.out.println(sb.toString()+ch); str = sb.toString(); if(str.length()>0){ phrase = new Phrase(str,String.valueOf(ch),l+1,++no); phraseList.add(phrase); } sb = new StringBuilder(); } } //后边的没标点的短句 str = sb.toString(); if(str.length()>0){ //System.out.println(str); phrase = new Phrase(str,"",l+1,++no); phraseList.add(phrase); } l++; } reader.close();
别人的解决方法
http://www.iteye.com/problems/27173
/*需要分割的文章*/ String str = "第一句。第二句!第三句:第四句;第五句。"; /*正则表达式:句子结束符*/ String regEx=":|。|!|;"; Pattern p =Pattern.compile(regEx); Matcher m = p.matcher(str); /*按照句子结束符分割句子*/ String[] words = p.split(str); /*将句子结束符连接到相应的句子后*/ if(words.length > 0) { int count = 0; while(count < words.length) { if(m.find()) { words[count] += m.group(); } count++; } } /*输出结果*/ for(int index = 0; index < words.length; index++) { String word = words[index]; System.out.println("word = " + word); }
其他的:
替换中英文空格为空
line = line.replaceAll("| ", "");
替换回车换行为空,注意中间写的是或,因为有的只有一个,有的顺序不同
line = line.replaceAll("\n|\r", "");
相关推荐
在这个场景下,`Split()`方法尤为适用,它可以按照指定的分隔符将字符串拆分为字符串数组。例如,我们可以创建一个包含标点符号的字符数组,然后用它来分割字符串。 ```csharp string text = "这是一段包含标点!...
使用`split()`方法,可以基于空格或者其他分隔符来拆分字符串。例如: ```java String input = "hello world"; String[] words = input.split(" "); ``` 在这个例子中,`words`数组将包含"hello"和"world"两个...
在英语文本中,单词通常是通过空格分隔的,因此我们可以通过字符串的`split()`方法,以空格为分隔符将字符串拆分成单词数组,数组的长度即为单词数。但是,需要注意处理特殊情况,如连续的多个空格或者单词首尾的...
注意,`re.split()`函数在遇到多个连续的分隔符时,会将它们视为一个分隔符,因此不会在它们之间产生空的分割项。此外,如果文本中存在多个连续的相同标点符号,它们也会被视为一个分隔符。 总结一下,本示例展示了...
在这里,我们将使用Java来解决这个问题,因为这是给定的标签。 首先,我们需要导入必要的Java库,如`java.util.Scanner`用于读取文件,`java.util.HashMap`或`java.util.Map`用于存储单词及其出现的次数。以下是一...
Java的`String`类提供了`split()`方法,可以根据特定的分隔符(如空格、标点符号)将字符串拆分成单词数组。 3. **数据结构选择**:为了存储每个单词及其出现次数,可以选择使用哈希映射(HashMap)。`java.util....
3. **分割字符串**:使用split()方法根据分隔符将字符串拆分成单词数组。 4. **统计单词**:遍历数组,利用HashMap存储每个单词及其出现的次数。当遇到新的单词时,将其添加到Map中并设置次数为1;如果单词已存在,...
`split()`函数可以根据提供的分隔符将字符串切割成多个子字符串,并返回一个包含这些子字符串的列表。默认情况下,它以空格作为分隔符,但你可以自定义分隔符,例如: ```python text = "Hello, World! How are you?...
1. **基础解析**:最简单的解析方法是通过字符串的`split()`函数,利用`[`作为分隔符。但这种方法无法处理嵌套的时间戳或自定义标签,例如`[n@mm:ss]`这样的格式。因此,我们需要使用更复杂的方法来解析。 2. **...
通常,一个单词是由非空字符(字母、数字或特殊符号)组成的连续序列,而单词之间由空格或其他分隔符隔开。在给定的题目中,“最后一个单词”是指字符串末尾以空格分隔的字符序列。 在大多数编程语言中,我们可以...
在MATLAB编程环境中,"phrase2wordm"通常是指一个用于处理字符串的函数,特别是将连续的单词或短语拆分成单独的单词。这个过程在处理文本数据时非常常见,例如在自然语言处理(NLP)任务中。下面我们将详细讨论...
3. **切割与分割**:使用`split()`方法按照特定分隔符将字符串拆分为多个子字符串数组。 4. **大小写转换**:`toUpperCase()`和`toLowerCase()`用于转换字符串的大小写。 5. **格式化输出**:`printf()`或`format()`...
使用`split()`函数可以根据分隔符将字符串拆分成多个子串。在处理中文句子时,分隔符可能是空格、逗号或其他标点符号,注意中文标点符号在Unicode中也有其特定的编码。 字符串的编码与解码是另一个关键主题。虽然...
在C#中,可以通过读取文件内容,然后对每行文本进行分割,通常使用`Split()`方法,以空格或特定分隔符为依据将文本拆分为单词数组。接着,可以使用哈希表(例如`Dictionary, int>`)来存储每个单词及其出现次数,以...
在Python中,可以使用`split()`函数按空格或其他分隔符分割字符串。默认情况下,它会按空格拆分: ```python words = content.split() ``` 但这可能会忽略标点符号和大小写。为了准确地找出唯一的单词,我们可以...
- 分割字符串:通过`split()`方法按指定分隔符切分字符串为多个子字符串,形成列表。 - 正则表达式:`re`模块提供了强大的正则表达式功能,可以清除特定模式的字符或字符串。 2. 清洗列表: - 过滤元素:使用...
在Python中,我们可以使用`split()`方法根据分隔符(默认为空格)将字符串拆分成单词列表。然而,由于英文文章可能存在标点符号和大小写问题,我们需要进一步处理。例如: ```python words = content.lower().split...
这通常通过分词操作完成,可以使用`split()`函数,它会根据空格或其他指定的分隔符将字符串分割为单词列表。 接下来,我们需要建立一个字典来存储每个单词及其出现次数。遍历每行中的单词,如果单词不在字典中,就...
在处理过程中,软件可能会利用空格作为分隔符,将句子拆分成单独的单词。 接着,软件会进行单词去重。在连续处理多篇文章后,数据库中可能包含大量重复的单词。为了避免这种情况,软件会进行检查并去除重复的单词,...
# 使用split()函数以空格为分隔符将句子拆分为单词列表 word_list = sentence.split(' ') # 使用reverse()函数将单词列表逆序 word_list.reverse() # 使用join()函数将逆序的单词列表重新组合为字符串,单词间用...