`
zhanyu1984
  • 浏览: 72738 次
  • 性别: 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;
  }
}
分享到:
评论

相关推荐

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

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

    数据库连接字符串的写法

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

    匹配中文字符串的拼音首字母或英文字符串的首字母缩写,源码

    在IT行业中,中文字符串的拼音首字母匹配以及英文字符串的首字母缩写是常见的文本处理需求,尤其是在数据处理、搜索引擎优化、用户界面设计等领域。这个压缩包文件"GetHighlightAcronymLib"似乎提供了一个库或者工具...

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

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

    VB拆分字符串,分隔字符串

    在VB(Visual Basic)编程中,处理字符串是常见的任务之一,其中包括将一个长字符串拆分成多个子字符串。这个过程通常称为“字符串拆分”或“分隔字符串”。在这个主题中,我们将深入探讨VB中如何实现这一操作,以及...

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

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

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

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

    C语言字符串转换为Python字符串的方法

    C语言字符串转换为Python字符串的方法 C语言字符串转换为Python字符串是指将C语言中的字符串数据转换为Python中的字符串对象,以便在Python环境中使用。下面详细介绍了C语言字符串转换为Python字符串的方法。 使用...

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

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

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

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

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

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

    LabVIEW删除字符串中空格

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

    截取指定长度的字符串

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

    统计字符串中子字符串出现的次数,并返回

    在IT领域,字符串处理是一项基础且重要的任务,尤其是在编程语言如C#中。"统计字符串中子字符串出现的次数,并返回"是一个常见的需求,广泛应用于文本分析、数据挖掘以及日志处理等多个场景。本篇文章将深入探讨如何...

    使用一个字符串分割另一个字符串

    * 使用一个字符串分割另一个字符串 * * @param delimiter 边界上的分隔字符 * @param haystack 输入的字符串 * @param out 输出的字符串指针 * @return 分割成了多少个成员 */ int explode(char *delimiter, ...

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

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

    labview字符串创建数组

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

    字符串的对比与替换

    编写程序:从键盘上输入一个包含10个字符的字符串,把该字符串与程序中给定的字符串("bacdbcabca") //依次比较,统计两个字符串对应字符相等的数目。然后输出从键盘上输入的字符串, //并把两个字符串中对应字符不...

    c#正则表达式截取指定字符串之间的字符串。类文件直接用就可以了~

    给写了2个方法,一个是直接截取单个需要的字符串,比如字符串string a="ab123456",我只需要提取3,那么就是单独截取就可以了,从2开始到4结束就行。 第二个是把所有的符合条件的字符串都截取出来,提取出来,比如...

    分组字符合并SQL语句 按某字段合并字符串之一(简单合并)

    标题:按某字段合并字符串之一(简单合并) 描述:将如下形式的数据按id字段合并value字段。 id value —– —— 1 aa 1 bb 2 aaa 2 bbb 2 ccc 需要得到结果: id value —— ———– 1 aa,bb 2 aaa,bbb,...

Global site tag (gtag.js) - Google Analytics