`
Junjiejkl
  • 浏览: 61849 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

输入中文字符串,输出中文首字母

 
阅读更多
<pre name="code" class="java">package com.ankangqiao.util;

/**
* GB 2312-80 把收录的汉字分成两级。第一级汉字是常用汉字,计 3755 个,
*
* 置于 16~55 区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字,
*
* 计 3008 个,置于 56~87 区,按部首/笔画顺序排列,所以本程序只能查到
*
* 对一级汉字的声母。同时对符合声母(zh,ch,sh)只能取首字母(z,c,s)
*/

public class StringUtil {

//private static Log logger = LogFactory.getLog(StringUtil.class);

// 国标码和区位码转换常量

static final int GB_SP_DIFF = 160;

// 存放国标一级汉字不同读音的起始区位码

static final int[] secPosValueList = {

1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787,

3106, 3212, 3472, 3635, 3722, 3730, 3858, 4027, 4086,

4390, 4558, 4684, 4925, 5249, 5600 };

// 存放国标一级汉字不同读音的起始区位码对应读音

static final char[] firstLetter = {

'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j',

'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',

't', 'w', 'x', 'y', 'z' };

// 获取一个字符串的拼音码

public static String getFirstLetter(String oriStr) {

String str = oriStr.toLowerCase();

StringBuffer buffer = new StringBuffer();

char ch;

char[] temp;

for (int i = 0; i &lt; str.length(); i++) { // 依次处理str中每个字符

ch = str.charAt(i);

temp = new char[] { ch };

byte[] uniCode = new String(temp).getBytes();

if (uniCode[0] &lt; 128 &amp;&amp; uniCode[0] &gt; 0) { // 非汉字

buffer.append(temp);

} else {

buffer.append(convert(uniCode));

}

}

return buffer.toString();

}

/**
* 获取一个汉字的拼音首字母。
*
* GB码两个字节分别减去160,转换成10进制码组合就可以得到区位码
*
* 例如汉字“你”的GB码是0xC4/0xE3,分别减去0xA0(160)就是0x24/0x43
*
* 0x24转成10进制就是36,0x43是67,那么它的区位码就是3667,在对照表中读音为‘n’
*/

static char convert(byte[] bytes) {

char result = '-';

int secPosValue = 0;

int i;

for (i = 0; i &lt; bytes.length; i++) {

bytes[i] -= GB_SP_DIFF;

}

secPosValue = bytes[0] * 100 + bytes[1];

for (i = 0; i &lt; 23; i++) {

if (secPosValue &gt;= secPosValueList[i]
&amp;&amp; secPosValue &lt; secPosValueList[i + 1]) {

result = firstLetter[i];

break;

}

}

return result;

}

public static void main(String[] args) {

System.out.println(StringUtil.getFirstLetter("I love u"));

System.out.println(StringUtil.getFirstLetter("我爱北京"));

System.out.println(StringUtil.getFirstLetter("I love 北京"));

}

}
</pre>
<p> </p>
分享到:
评论

相关推荐

    汉字字符串输出首字母源代码

    这篇关于“汉字字符串输出首字母源代码”的主题,主要是探讨如何从汉字字符串中提取出每个汉字的首字母,这对于构建拼音索引或者快速查找汉字具有实用价值。在中文环境下,由于汉字的多样性,直接获取首字母并不像...

    java 取出汉语字符串各汉字拼音首字母并大写

    - 遍历输入字符串中的每个汉字。 - 查找每个汉字对应的拼音,并提取拼音的首字母。 3. **拼音首字母转大写**: - 将提取到的拼音首字母转换为大写形式。 #### 四、代码示例 以下是一个简单的Java类,用于演示...

    写自定义函数stringLower()实现将一个字符串中所有大写字母变为小写字母。在主函数中输入一含有大写字母的字符串,调用该函数并输出改变后的字符串。

    然后,我们调用`stringLower(input)`,将输入字符串传递给自定义函数。在`stringLower()`函数内部,我们创建了一个`output`字符串,它是`input`的副本。接着,我们使用`std::transform`将`output`中的每个字符转换为...

    Delphi输出汉字拼音字符串首字母源代码..rar

    这个压缩包“Delphi输出汉字拼音字符串首字母源代码..rar”显然包含了一组源代码,目的是帮助开发者实现一个功能,即从汉字转换为对应的拼音字符串,并进一步提取每个汉字的首字母。在中文信息处理领域,这种技术常...

    汉字转拼音及获取首字母

    这些代码通常会包括一个输入汉字字符串,然后输出拼音和首字母的接口。开发者可以通过阅读这些代码,理解其工作原理,并根据自己的需求进行修改和扩展。 - 示例程序可能还包含了测试用例,展示了如何调用这些方法,...

    Java改变字符串中每个单词的首字母

    Java 1. 接受输入英文字符串,将字符串中每个单词的首字母转换为大写,并输出。 例如输入:I like apples. 输出为:I Like Apples.

    c# 获取汉字首字母(含多音字)

    在给定的场景中,我们需要编写C#代码来实现输入一个汉字字符串,然后返回所有对应汉字首字母的匹配序列。 在C#中,我们可以使用第三方库如`Hanyu.Pinyin`或者自己编写算法来实现这个功能。`Hanyu.Pinyin`库可以方便...

    输出字符串中的单词

    输入一个字符串,从中依次取出连续的字母作为一个字母串,并将其首字母换成对应的大写字母,然后将取出的所有字母串输出。例如,输入字符串“we12are3*45Chinese.”输出的字母串依次为:We、Are和Chinese。

    字符串大小写转换倒序输出

    例如,在Python中,我们可以使用`lower()`方法将字符串全部转换为小写,`upper()`方法将字符串全部转换为大写,而`title()`方法则会将每个单词的首字母转换为大写。这些都是对字符串进行大小写转换的基本操作,它们...

    在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。(C语言)

    在这个问题中,我们假设输入的字符串仅包含字母和空格,空格用于分隔不同的单词。接下来,我们将详细讨论如何实现这个功能。 首先,我们需要了解C语言中的字符串是如何表示的。在C语言中,字符串是以字符数组的形式...

    C#获取汉字字符串拼音首字母的方法

    `GetFirstLetter`方法遍历输入的汉字字符串,对于每个汉字,查找其在拼音库中的拼音并返回首字母,最后将所有首字母连接成字符串。 使用这个`PinYin`类,你可以像下面这样获取一个汉字字符串的拼音首字母: ```...

    字符串 数组、字母和ASCII值应用

    四、输入一个字符串,字符串是字母和数字的组合,编程实现输出一个新的字符串,要求字母在前面,数字在后面,顺序不变,例如:2s7ess83a 变成sessa2783 五、一个字符串,获取最长的一个单词,如有多个相同...

    java中汉字得到首字母大写

    - 字符串遍历:遍历输入字符串中的每个字符,逐个进行转换。 - 异常处理:对于非中文字符或无法识别的字符,通常采用默认值(如`'0'`)代替。 3. **编码支持** - GB2312编码:一种用于汉字的双字节编码方案,...

    一个关于字符串操作的程序源代码

    对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\t')、回车符('\r')、换行符('\n')。 Input 输入一...

    php实现字符串首字母大写和单词首字母大写的方法

    在上述代码中,首先用ucwords函数将所有单词的首字母转换成大写,然后再用ucfirst函数将整个字符串的首字母转换成大写。 除了上述两个函数,实际上PHP还提供了其他与大小写转换相关的函数,如=strtolower、...

    寻找指定的字符串

    位置的格式形如(1,2)-&gt;(2,6),意为该字符串首字母在字符矩阵中的位置是第1 列2 行,尾字母在字符矩阵中的位置是第2 列6 行 (备注:如果某个字符串在字符阵列中出现多次,则只记录任意一个出现位置即可。字符串出现...

    SQL 汉字转拼音首字母

    3. **循环处理**:通过一个`WHILE`循环,对输入字符串`@str`中的每一个字符进行处理。每次循环提取出一个字符`@word`,并判断其是否属于汉字范围(Unicode编码区间为19968至40869)。 4. **拼音映射**:对于每个...

    汉字GBK首字母(含生僻字)C++实现代码文件

    1. **GBK解码**:首先,需要将输入的GBK编码的字符串解码为汉字。这通常涉及到字节流的解析和映射到对应的汉字。 2. **拼音映射**:解码后的汉字需要转换为其拼音表示。这通常需要一个汉字到拼音的映射表,考虑到...

    取汉字拼音或首字母的PL/SQL存储过程

    我们通过循环遍历输入字符串的每个字符,将其转换为Unicode码,然后转化为ASCII码。如果ASCII码在'A'到'Z'的范围内,我们就认为它是拼音的首字母,并将其添加到输出字符串中。对于非字母字符,我们将其标记为'X'。 ...

    字符串操作封装函数

    4. **大小写转换**:`upper()`、`lower()`和`title()`函数可以将字符串转换为全大写、全小写和首字母大写的形式。 5. **去除空白字符**:`strip()`、`lstrip()`和`rstrip()`用于去除字符串首尾或两侧的空格或指定...

Global site tag (gtag.js) - Google Analytics