<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 < str.length(); i++) { // 依次处理str中每个字符
ch = str.charAt(i);
temp = new char[] { ch };
byte[] uniCode = new String(temp).getBytes();
if (uniCode[0] < 128 && uniCode[0] > 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 < bytes.length; i++) {
bytes[i] -= GB_SP_DIFF;
}
secPosValue = bytes[0] * 100 + bytes[1];
for (i = 0; i < 23; i++) {
if (secPosValue >= secPosValueList[i]
&& secPosValue < 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>
分享到:
相关推荐
这篇关于“汉字字符串输出首字母源代码”的主题,主要是探讨如何从汉字字符串中提取出每个汉字的首字母,这对于构建拼音索引或者快速查找汉字具有实用价值。在中文环境下,由于汉字的多样性,直接获取首字母并不像...
- 遍历输入字符串中的每个汉字。 - 查找每个汉字对应的拼音,并提取拼音的首字母。 3. **拼音首字母转大写**: - 将提取到的拼音首字母转换为大写形式。 #### 四、代码示例 以下是一个简单的Java类,用于演示...
然后,我们调用`stringLower(input)`,将输入字符串传递给自定义函数。在`stringLower()`函数内部,我们创建了一个`output`字符串,它是`input`的副本。接着,我们使用`std::transform`将`output`中的每个字符转换为...
这个压缩包“Delphi输出汉字拼音字符串首字母源代码..rar”显然包含了一组源代码,目的是帮助开发者实现一个功能,即从汉字转换为对应的拼音字符串,并进一步提取每个汉字的首字母。在中文信息处理领域,这种技术常...
这些代码通常会包括一个输入汉字字符串,然后输出拼音和首字母的接口。开发者可以通过阅读这些代码,理解其工作原理,并根据自己的需求进行修改和扩展。 - 示例程序可能还包含了测试用例,展示了如何调用这些方法,...
Java 1. 接受输入英文字符串,将字符串中每个单词的首字母转换为大写,并输出。 例如输入:I like apples. 输出为:I Like Apples.
在给定的场景中,我们需要编写C#代码来实现输入一个汉字字符串,然后返回所有对应汉字首字母的匹配序列。 在C#中,我们可以使用第三方库如`Hanyu.Pinyin`或者自己编写算法来实现这个功能。`Hanyu.Pinyin`库可以方便...
输入一个字符串,从中依次取出连续的字母作为一个字母串,并将其首字母换成对应的大写字母,然后将取出的所有字母串输出。例如,输入字符串“we12are3*45Chinese.”输出的字母串依次为:We、Are和Chinese。
例如,在Python中,我们可以使用`lower()`方法将字符串全部转换为小写,`upper()`方法将字符串全部转换为大写,而`title()`方法则会将每个单词的首字母转换为大写。这些都是对字符串进行大小写转换的基本操作,它们...
在这个问题中,我们假设输入的字符串仅包含字母和空格,空格用于分隔不同的单词。接下来,我们将详细讨论如何实现这个功能。 首先,我们需要了解C语言中的字符串是如何表示的。在C语言中,字符串是以字符数组的形式...
`GetFirstLetter`方法遍历输入的汉字字符串,对于每个汉字,查找其在拼音库中的拼音并返回首字母,最后将所有首字母连接成字符串。 使用这个`PinYin`类,你可以像下面这样获取一个汉字字符串的拼音首字母: ```...
四、输入一个字符串,字符串是字母和数字的组合,编程实现输出一个新的字符串,要求字母在前面,数字在后面,顺序不变,例如:2s7ess83a 变成sessa2783 五、一个字符串,获取最长的一个单词,如有多个相同...
- 字符串遍历:遍历输入字符串中的每个字符,逐个进行转换。 - 异常处理:对于非中文字符或无法识别的字符,通常采用默认值(如`'0'`)代替。 3. **编码支持** - GB2312编码:一种用于汉字的双字节编码方案,...
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\t')、回车符('\r')、换行符('\n')。 Input 输入一...
在上述代码中,首先用ucwords函数将所有单词的首字母转换成大写,然后再用ucfirst函数将整个字符串的首字母转换成大写。 除了上述两个函数,实际上PHP还提供了其他与大小写转换相关的函数,如=strtolower、...
位置的格式形如(1,2)->(2,6),意为该字符串首字母在字符矩阵中的位置是第1 列2 行,尾字母在字符矩阵中的位置是第2 列6 行 (备注:如果某个字符串在字符阵列中出现多次,则只记录任意一个出现位置即可。字符串出现...
3. **循环处理**:通过一个`WHILE`循环,对输入字符串`@str`中的每一个字符进行处理。每次循环提取出一个字符`@word`,并判断其是否属于汉字范围(Unicode编码区间为19968至40869)。 4. **拼音映射**:对于每个...
1. **GBK解码**:首先,需要将输入的GBK编码的字符串解码为汉字。这通常涉及到字节流的解析和映射到对应的汉字。 2. **拼音映射**:解码后的汉字需要转换为其拼音表示。这通常需要一个汉字到拼音的映射表,考虑到...
我们通过循环遍历输入字符串的每个字符,将其转换为Unicode码,然后转化为ASCII码。如果ASCII码在'A'到'Z'的范围内,我们就认为它是拼音的首字母,并将其添加到输出字符串中。对于非字母字符,我们将其标记为'X'。 ...
4. **大小写转换**:`upper()`、`lower()`和`title()`函数可以将字符串转换为全大写、全小写和首字母大写的形式。 5. **去除空白字符**:`strip()`、`lstrip()`和`rstrip()`用于去除字符串首尾或两侧的空格或指定...