zoukankan      html  css  js  c++  java
  • 单词单复数转换函数

    /// <summary>
            
    /// 单词单复数转换函数,本函数对2个或2个字母以上单词有效
            
    /// </summary>
            
    /// <param name="world">待转换的单词</param>
            
    /// <returns>返回一个长度为2的字符串数组,第一个值为单数单词,第二个为复数单词</returns>
            public static string[] worldTransform(string world)
            {
                world 
    = world.ToLower();//将单词转成小写形式
                string vowel = "aoeiu";//声明元音字符串
                int length = world.Length;//获取单词字符长度待用
                string[] worlds = new string[2];//声明一个二维字符串数组
                if (length == 1)
                {
                    worlds[
    0= world;//存储单词单数形式
                    worlds[1= world;//存储单词复数形式
                    return worlds;
                }
                
    else
                {
                    
    char last = world[length - 1];//取出单词最后一个字符待用
                    char last2 = world[length - 2];//取出单词倒数第二个字符待用
                    char last3 = ' ';
                    
    if (length >= 3)
                        last3 
    = world[length - 3];//取出单词倒数第三个字符待用
                    char last4 = ' ';
                    
    if (length >= 4)
                        last4 
    = world[length - 4];//取出单词倒数第四个字符待用
                    worlds[0= world;//存储单词单数形式
                    worlds[1= world;//存储单词复数形式


                    
    if (length == 1)
                    {
                        
    return worlds;
                    }
                    
    if (last != 's' || length <= 2)
                    {
                        
    //单词最后一个字母不为"s",则可判断为单数形式
                        switch (last)
                        {
                            
    case 'y':
                                
    if (vowel.IndexOf(last2) < 0)
                                {
                                    worlds[
    1= worlds[1].Substring(0, length - 1+ "i";
                                    worlds[
    1+= "es";
                                }
                                
    else
                                    worlds[
    1+= "s";
                                
    break;
                            
    case 'f':
                                worlds[
    1= worlds[1].Substring(0, length - 1+ "v";
                                worlds[
    1+= "es";
                                
    break;
                            
    case 'e':
                                
    if (last2 == 'f')
                                {
                                    worlds[
    1= worlds[1].Substring(0, length - 2+ "ves";
                                }
                                
    else
                                    worlds[
    1+= "s";
                                
    break;
                            
    case 'o':
                                worlds[
    1+= "es";
                                
    break;
                            
    case 'z':
                                worlds[
    1+= "es";
                                
    break;
                            
    case 's':
                                worlds[
    1+= "es";
                                
    break;
                            
    case 'x':
                                worlds[
    1+= "es";
                                
    break;
                            
    case 'h':
                                
    if (last2 == 'c' || last2 == 's')
                                    worlds[
    1+= "es";
                                
    else
                                    worlds[
    1+= "s";
                                
    break;
                            
    default:
                                worlds[
    1+= "s";
                                
    break;
                        }
                        
    return worlds;
                    }
                    
    else
                    {
                        
    if (last2 == 'e')
                        {
                            
    //单词最后两个字母为“es”,则可判断其为复数形式
                            if (last3 == 'z' || last3 == 'x' || last3 == 's' || last3 == 'h' || last3 == 'o')
                                worlds[
    0= worlds[0].Remove(length - 2);
                            
    else if (last3 == 'i')
                            {
                                
    if (length >= 4)
                                {
                                    
    if (vowel.IndexOf(last4) < 0)
                                    {
                                        worlds[
    0= worlds[0].Remove(length - 2);
                                        worlds[
    0= worlds[0].Substring(0, length - 3+ "y";
                                    }
                                    
    else
                                        worlds[
    0= worlds[0].Remove(length - 2);
                                }
                            }
                            
    else if (last3 == 'v')
                            {
                                worlds[
    0= worlds[0].Remove(length - 3);
                                worlds[
    0+= "f";//此步骤会产生误差。因为大多数的“f”、“fe”结尾单词中多以“f”结尾(还没有调查过),顾忽略“fe”。要避免误差只能用词库了。
                            }
                            
    else
                            {
                                worlds[
    0= worlds[0].Remove(length - 1);
                            }
                        }
                        
    else
                        {
                            worlds[
    0= worlds[0].Remove(length - 1);//此步骤误差最大,当单词最后一个字母为s时,很难判断它是复数还是单数,目前还没有找到判断的规律,估计要用到词库此才行。
                        }
                        
    return worlds;
                    }
                }
            }
    http://www.cnblogs.com/smalltree/archive/2009/02/14/1390631.html
  • 相关阅读:
    Fiddler无法抓取HTTPS的问题,Fiddler证书无法安装终极解决方案,
    锤子手机做appium自动化测试时,运行脚本总是弹出警告框的问题
    jmeter4+win10+jdk1.8环境下,jmeter输入中文就卡死的问题
    jenkins构建邮件自动发送,测试邮件发送成功,构建项目邮件发送不成功的问题
    Jenkins安装部署
    Appium中wait_activity的使用以及XPATH定位
    Appium连接夜神模拟器,模拟手势点击(tap)
    Appium如何查看webview上元素
    Appium启动淘宝APP,输入搜索内容
    Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't
  • 原文地址:https://www.cnblogs.com/tonybinlj/p/1391160.html
Copyright © 2011-2022 走看看