`
zhanyu1984
  • 浏览: 72626 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

获得字符串的拼音头和全拼的写法

SQL 
阅读更多
public class SpellCache implements java.io.Serializable
{
  private static final long serialVersionUID = -8208755962314651055L;
  private static SpellCache obj_SpellCache;

  static ArrayList<Spell> arr_Spell = null;

  /**
   * 实例初始化
   */
  private SpellCache()
  {
    try
    {
      if(obj_SpellCache==null)
        init();
    }
    catch(Exception e)
    {
      e.printStackTrace();
      obj_SpellCache = null;
    }
  }
 
  /**
   * 获得拼音缓存的实例
   * @return 拼音缓存的实例
   */
  public static synchronized SpellCache getInstance()
  {
    if(obj_SpellCache == null)
    {
      obj_SpellCache = new SpellCache();
    }

    return obj_SpellCache;
  }
 
  /**
   * 拼音缓存内容的初始化
   */
  private void init() throws Exception
  {
    DBConnection dbc = new DBConnection();
ResultSet rst = null;
try
{
      /// 查询出拼音内容
      String str_SQL = Common.SELECT  + Field.WORD   + Common.COMMA +
                                        Field.SPELL  + Common.COMMA +
                                        Field.ASPELL +
                       Common.S_FROM  + Table.SPELL  +
                       Common.S_ORDER + Field.WORD;

      /// 查询
      rst = dbc.excuteQuery(str_SQL);

      /// 初始化 arr_Spell
      arr_Spell = new ArrayList<Spell>();

      while(rst.next())
      { 
        char chr_Word     = rst.getString(Field.WORD).charAt(0);
        char chr_Spell    = rst.getString(Field.SPELL).charAt(0);
        String str_ASpell = rst.getString(Field.ASPELL);

        arr_Spell.add(new Spell(chr_Word, chr_Spell, str_ASpell));
      }
     
      rst.close();
     
      System.out.println("缓存中已载入" + arr_Spell.size() + "个拼音");
    }
    catch(Exception e)
    {
      throw new Exception(e.getMessage());
    }
    finally
    {
    rst.close();
    dbc.freeConnection();
    }
  }

  /**
   * 获得拼音的总数
   * @return int               拼音的总数
   */
  public synchronized int getCount()
  {
    return arr_Spell.size();
  }
 
  /**
   * 获得单个拼音对象
   * @param chrWord           字符
   * @return Spell             单个拼音缓存对象
   */
  public Spell getObject(char chrWord)
  {
    Iterator it = arr_Spell.iterator();

    while(it.hasNext())
    {
      Spell obj_Spell = (Spell)it.next();

      if (obj_Spell.equals(chrWord)) return obj_Spell;
    }
    return null;
  }
 
  /**
   * 获得字符的拼音头
   * @param chrWord           字符
   * @return String            拼音头
   */
  public String getSpell(char chrWord)
  {
    Spell obj_Spell = getObject(chrWord);

    if(obj_Spell==null) return null;

    return String.valueOf(obj_Spell.getSpell());
  }
 
  /**
   * 获得字符的全拼
   * @param chrWord           字符
   * @return String            全拼
   */
  public String getASpell(char chrWord)
  {
    Spell obj_Spell = getObject(chrWord);

    if(obj_Spell==null) return null;

    return String.valueOf(obj_Spell.getASpell());
  }
 
  /**
   * 获得字符串的拼音头
   * @param strWord           字符串
   * @return String            拼音头
   */
  public String getSpell(String strWord)
  {
    if(strWord==null) return null;
    if(strWord.equals("")) return null;

    char[] chr_Single = strWord.toCharArray();

    String str_Spell = "";

    for(int i=0; i<chr_Single.length; i++)
    {
      str_Spell += getSpell(chr_Single[i]);
    }

    return str_Spell;
  }
 
  /**
   * 获得字符串的全拼
   * @param strWord           字符串
   * @return String            全拼
   */
  public String getASpell(String strWord)
  {
    if(strWord==null) return null;
    if(strWord.equals("")) return null;

    char[] chr_Single = strWord.toCharArray();

    String str_ASpell = "";

    for(int i=0; i<chr_Single.length; i++)
    {
      str_ASpell += getASpell(chr_Single[i]);
    }

    return str_ASpell;
  }
 
  /**
   * 更新拼音
   * @param chrWord              字符
   * @param chrSpell             拼音头
   * @param strASpell            全拼
   */
  public synchronized void update(char chrWord,
                                  char chrSpell,
                                  String strASpell) throws Exception
  {
    update(new Spell(chrWord, chrSpell, strASpell));
    return;
  }

  /**
   * 更新拼音
   * @param objSpell              单个拼音对象
   */
  public synchronized void update(Spell objSpell) throws Exception
  {
    try
    {
      Spell obj_Spell = getObject(objSpell.getWord());

      DataStorage obj_DS = new DataStorage();
     
      /// 拼音缓存存在,更新
      if (obj_Spell!=null)
      {
        obj_Spell.setSpell(objSpell.getSpell());
        obj_Spell.setASpell(objSpell.getASpell());

        String str_Spell  = String.valueOf(objSpell.getSpell());
        String str_ASpell = String.valueOf(objSpell.getASpell());
        String str_Word   = String.valueOf(objSpell.getWord());

        String str_SQL = Common.UPDATE  + Table.SPELL  +
                         Common.S_SET   + Field.SPELL  + Common.EQUAL + General.addQuotes(str_Spell)  + Common.COMMA +
                                          Field.ASPELL + Common.EQUAL + General.addQuotes(str_ASpell) +
                         Common.S_WHERE + Field.WORD   + Common.EQUAL + General.addQuotes(str_Word);

        obj_DS.addSQL(str_SQL);
        obj_DS.runSQL();
      }

      /// 拼音缓存不存在,添加
      else
      {
        arr_Spell.add(objSpell);

        String str_SQL = Common.INSERT   + Table.SPELL      +
                           General.addBracket(Field.WORD    + Common.COMMA +
                                              Field.SPELL   + Common.COMMA +
                                              Field.ASPELL) +
                         Common.S_VALUES +
                           General.addBracket(General.addQuotes(String.valueOf(objSpell.getWord()))  + Common.COMMA +
                                              General.addQuotes(String.valueOf(objSpell.getSpell())) + Common.COMMA +
                                              General.addQuotes(objSpell.getASpell()));

        obj_DS.addSQL(str_SQL);
        obj_DS.runSQL();
      }

      return;
    }
    catch(Exception e)
    {
      throw new Exception(e.getMessage());
    }
  }
 
}
class Spell implements java.io.Serializable
{
  private static final long serialVersionUID = 8537233176930218357L;
  private char m_chr_Word;
  private char m_chr_Spell;
  private String m_str_ASpell;
 
  public Spell()
  {
  }
 
  public Spell(char chrWord, char chrSpell, String strASpell)
  {
    m_chr_Word = chrWord;
    m_chr_Spell = chrSpell;
    m_str_ASpell = strASpell;
  }

  public String getASpell()
  {
    return m_str_ASpell;
  }

  public void setASpell(String strASpell)
  {
    m_str_ASpell = strASpell;
  }

  public char getSpell()
  {
    return m_chr_Spell;
  }

  public void setSpell(char chrSpell)
  {
    m_chr_Spell = chrSpell;
  }

  public char getWord()
  {
    return m_chr_Word;
  }

  public void setWord(char chrWord)
  {
    m_chr_Word = chrWord;
  }

  public boolean equals(char chrValue)
  {
    if(m_chr_Word==chrValue) return true;
    return false;
  }
}
分享到:
评论

相关推荐

    完整简洁的Oracle获得汉字字符串拼音首字母和全拼的函数

    完整简洁的Oracle获得汉字字符串拼音首字母和全拼的函数 方案一(是方案二的包体方式)pinyin(拼音之间有空格) 方案二(较慢)常用中文字符转全拼音函数(有空格) 方案三(最优)完整简洁的Oracle获得汉字字符串拼音首字母...

    汉字字符串拼音排序-QT、C++

    在中文环境中,由于汉字的特性,拼音排序成为一种实用的需求,特别是在需要按照汉字拼音首字母来排列字符串的场景下。"汉字字符串拼音排序-QT、C++"的主题涉及到如何在QT和C++环境中实现这样的功能。 首先,让我们...

    数据库连接字符串的写法

    数据库连接字符串的写法 数据库连接字符串是指在应用程序中连接数据库所需的字符串,用于指定连接数据库的详细信息。连接字符串的写法因数据库管理系统的不同而异,但是大致可以分为两类:使用连接字符串和使用 UDL...

    sql server拼接字符串和拼接一列的值

    sql server拼接字符串查询语句。 普通拼接字符串和拼接某一列的所有值。

    头歌教学实践平台 Web前端开发基础 JavaScript学习手册九:字符串

    本手册将深入探讨JavaScript中的字符串,这是编程中常用的数据类型,对于理解和操作文本至关重要。 一、字符串基础 在JavaScript中,字符串是不可变的,意味着一旦创建,其内容就不能更改。字符串可以用单引号(' ')...

    rf.rar_RF 字符串截取_Rf字符串比较_rf字符串切割

    比如,如果你想根据空格切割字符串`"Hello World"`,可以使用`split('\s')`,结果会得到`['Hello', 'World']`。 在这个压缩包中,我们有三个文件:rf.txt、www.pudn.com.txt、pudn.txt。这些文件很可能包含了一些...

    java中根据汉字字符串获取拼音首字母工具类

    java中根据汉字字符串获取拼音首字母工具类

    [字符串]字符串提取(获取两个字符串中间的字符串)

    在C#中,处理字符串时,我们经常需要从一个较大的字符串中提取出特定部分,比如位于两个已知字符串之间的子串。这在解析日志、处理配置文件或者从HTML源码中提取信息时非常常见。标题中的“字符串提取(获取两个字符...

    取出汉字字符串的拼音首字母

    ### 取出汉字字符串的拼音首字母:Java 实现 #### 概述 本文将详细介绍一个 Java 类 `ChineseCharToEn` 的实现方法,该类主要用于获取汉字字符串的拼音首字母。这种技术常用于需要对汉字进行快速识别或索引处理的...

    oracle拼接字符串和拼接一列的值

    oracle拼接字符串查询语句。 普通拼接字符串和拼接某一列的所有值。

    C#字符串删除指定字符串|字符串删除子字符串

    在C#编程语言中,处理字符串是常见的任务之一,其中包括删除字符串中的特定部分或子字符串。本篇文章将详细探讨如何在C#中实现这一功能,包括多种方法和实用技巧。 首先,C#提供了多种内置方法来操作字符串,比如`...

    java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节;

    java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java ...

    汉字字符串转化为拼音首字母缩写(限常用字)的小程序与源码(VC++)

    在IT领域,尤其是在编程实践中,有时我们需要将汉字字符串转换成其拼音首字母缩写,这在处理中文数据、创建搜索引擎关键词或实现特定的文本处理功能时非常有用。本项目提供了一个小程序及其源码,用于实现这个功能,...

    数据库字符串相加---字符串相加函数

    根据提供的信息,本文将详细介绍一个在SQL Server 2000环境下用于字符串拼接的自定义函数,并对该函数的功能、实现方法以及应用场景进行深入解析。 ### 一、SQL Server 2000简介 SQL Server 2000是微软发布的一款...

    LabVIEW删除字符串中空格

    将“删除字符”函数拖放到前面板,设置输入为你的字符串,将“要删除的字符”设置为32,输出就是没有空格的新字符串。 3. **计算字符长度**: 计算字符串的字符长度,可以使用“字符串长度”函数。将该函数拖放到...

    截取指定长度的字符串

    在编程领域,字符串操作是一项基础且重要的任务。"截取指定长度的字符串"这个主题涉及到的是如何从一个字符串中提取出特定长度的部分。这在处理用户输入、数据展示、信息提取等多个场景中都非常常见。接下来,我们将...

    labview字符串拆分到数组 支持中文1

    1. 分隔符的选择:确保分隔符在字符串中是唯一的,否则可能会得到不期望的结果。 2. 空格处理:如果字符串中含有连续的空格或换行符,可能会影响拆分结果,需要预处理去除这些空白字符。 3. 处理边界情况:检查是否...

    修改过后的字符串处理程序

    综上所述,"修改过后的字符串处理程序"涵盖了字符串搜索算法的修复、字符串的替换和全删除功能的实现,这些都是字符串处理的核心知识点。对于程序员来说,理解和掌握这些技能对于编写高效、健壮的文本处理代码至关...

    DB2字符串处理 字符串处理 db2 函数

    DB2 中的字符串处理函数可以分为多种类型,包括字符转换函数、去空格函数、取子串函数、字符串比较函数和字符串操作函数等。 一、字符转换函数 * ASCII() 函数:返回字符表达式最左端字符的 ASCII 码值。在 ASCII...

    labview字符串创建数组

    - **字符到字符串数组**:如果你有字符数组,可以使用“字符数组到字符串”函数,将每个字符数组元素转换为单独的字符串,然后用“数组构造函数”组合它们。 4. **操作字符串数组**: - **数组操作函数**:...

Global site tag (gtag.js) - Google Analytics