package com.wlh.lucene.test2;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
public class Test {
//源文件与目标文件的全路径名
private static final String READ_FILE="E:/workspace65/paoding-analysis_test/src/com/wlh/lucene/test2/txt.txt";
private static final String WRITE_FILE="E:/workspace65/paoding-analysis_test/src/com/wlh/lucene/test2/txt1.txt";
private static HanyuPinyinOutputFormat spellFormat = new HanyuPinyinOutputFormat();
private static BufferedWriter writer = null;
private static BufferedReader reader = null;
//初始化信息
public static void init() throws IOException{
writer = new BufferedWriter(new FileWriter(new File(WRITE_FILE),false));
reader = new BufferedReader(new FileReader(new File(READ_FILE)));
spellFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
spellFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
spellFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
}
// 判断字符串是否包含有中文
public static boolean isChinese(String str) {
String regex = "[\\u4e00-\\u9fa5]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
return matcher.find();
}
//使用PinYin4j.jar将汉字转换为拼音
public static String chineneToSpell(String chineseStr){
return PinyinHelper.toHanyuPinyinString(chineseStr , spellFormat ,"");
}
//将转换后的字符串写入目标文件
public static void writeToFile(String spellStr) throws IOException{
writer.write(spellStr);
}
//从源文件读取按行数据
public static void readFromFile() throws IOException{
String line = null;
while ((line = reader.readLine()) != null) {
line = line.trim();
//是中文
if(isChinese(line)){
line = chineneToSpell(line);
}
writeToFile(line + "\n");
}
}
//关闭文件流
public static void destory() throws IOException{
reader.close();
writer.close();
}
public static void main(String[] args) throws IOException {
init();
readFromFile();
destory();
}
}
分享到:
相关推荐
对于非汉字字符集的系统来说,中文字符的处理尤为复杂,这就催生了将中文转换为拼音的需求。在Java开发环境中,有一个非常实用的库——pinyin4j,它能够帮助我们高效地实现这个功能。本文将深入探讨pinyin4j 2.5.0...
- **汉字转拼音**:pinyin4j能够将汉字转换为拼音,支持全拼和简拼,包括声母、韵母、声调等详细信息。 - **多音字处理**:对于有多个读音的汉字,pinyin4j可以返回所有可能的读音。 - **拼音格式化**:用户可以...
本文将深入探讨pinyin4j jar包的使用,包括它的最新特性,以及在实际项目中的应用实例,特别是中文和拼音的混排实例。 首先,pinyin4j是一个开源的Java库,主要功能是将汉字转换为汉语拼音,支持声调标注和多种拼音...
以下是一个简单的使用示例,展示了如何利用Pinyin4j将汉字转换为拼音: ```java import net.sourceforge.pinyin4j.PinyinHelper; import ...
`pinyin4j`是一个强大的Java库,专门用于将汉字转换为对应的汉语拼音。这个`pinyin4j-2.5.0`包提供了全面的API,使得开发人员可以方便地在Java应用程序中实现这一功能。 `pinyin4j`库由Barry DeZeng开发,它的主要...
pinyin4j库主要提供了两个核心功能:一是将汉字转换为全拼音,二是提取每个汉字的首字母。这些功能在许多实际场景中都大有裨益,例如实现基于拼音的汉字排序、快速搜索、关键词匹配等。 首先,我们来看如何将汉字...
总的来说,"pinyin4j汉字转拼音.zip"这个项目为我们提供了一个使用pinyin4j进行汉字转拼音的实例。通过分析HanziToPinyinTest,我们可以学习如何在实际开发中集成和运用这个库。对于那些需要处理汉字拼音的Android...
它提供了API接口,可以方便地将汉字转化为对应的拼音,这对于开发中文输入法、搜索引擎、文本分析等应用来说,是不可或缺的工具。 然而,需要注意的是,pinyin4j的词库并不完整,这意味着它可能无法覆盖所有汉字的...
pinyin4j是一个开源的Java库,由Barry De Zaaf创建,主要功能是提供API,将汉字转换为汉语拼音,包括全拼和首字母缩写。这个库广泛应用于需要处理汉字拼音的场景,如搜索引擎优化、中文数据处理、自动文本校对等。 ...
通常,使用Pinyin4j的方式是通过Maven或Gradle等构建工具添加依赖,或者手动将jar文件添加到项目的类路径中。 另一个文件"javaUtils.txt"可能包含了与Pinyin4j库相关的Java工具类。这些工具类可能封装了一些常见...
"elasticsearch-analysis-pinyin-7.1.0.zip" 是一个针对Elasticsearch的拼音分析器插件,它将中文字符转换为拼音,便于进行基于拼音的搜索。 这个插件的核心功能是将中文文本转换为拼音表示,这样在进行关键词匹配...
pinyin4j是一个Java库,它能够将汉字转换为汉语拼音,这对于处理中文数据尤其有用。在没有汉字字符集排序规则的情况下,我们不能直接按照汉字的顺序对中文字符串进行排序。pinyin4j通过提供汉字到拼音的映射,解决了...
2. **elasticsearch-analysis-pinyin-7.2.1.jar**:这是Pinyin分析器的核心组件,实现了将中文字符转换为拼音的功能。Elasticsearch的分析器插件通常以这样的jar包形式提供,以便在Elasticsearch实例中加载并使用。...
在实际应用中,Elasticsearch的拼音分析器能将中文文本转换为对应的拼音,这样在搜索时,即使用户输入的是汉字,系统也能根据拼音匹配到相应的文档。例如,如果一个文档包含“北京”这个词,而用户搜索“bei jing”...
Pinyin分析器则是处理中文字符转化为拼音的工具,它能将汉字转换成拼音,使得用户可以通过输入拼音进行搜索,极大地扩大了搜索的范围。在7.6.2版本中,Pinyin分析器可以处理多音字,同时支持保留原始汉字,便于在...
首先,elasticsearch-analysis-pinyin是一款针对Elasticsearch设计的中文分词插件,它通过将汉字转换为拼音,实现了对中文文本的索引和搜索功能。在标题中的"elasticsearch-analysis-pinyin-7.17.5.zip",表明这是一...
总的来说,`elasticsearch-analysis-pinyin`插件是Elasticsearch处理中文数据的关键工具,它通过将中文转换为拼音,实现了基于拼音的全文检索,极大地拓展了Elasticsearch在中国市场的应用范围。如果你在处理中文...
"elasticsearch-analysis-pinyin-6.8.3.jar" 是这个拼音分词插件的核心文件,它提供了将中文字符转换为拼音的能力,使得用户可以通过输入汉字的拼音进行搜索,极大地扩展了Elasticsearch的搜索范围。此外,"nlp-lang...
3. **转换拼音**:对于每个中文姓名,使用pinyin4j库转换为拼音。 4. **处理结果**:将转换后的拼音保存到一个新的单元格或创建新的数据结构中。 5. **写回Excel**:最后,使用POI将处理后的数据写回到Excel文件中,...
在Android开发中,有时我们需要将汉字转换为对应的拼音,这在实现诸如搜索、排序或语音输入等功能时非常有用。这个主题主要围绕Java在Android环境下的汉字转拼音技术进行阐述。 一、拼音转换基础 1. 汉字与拼音的...