分布式服务器框架之Servers.Core类库字符串工具类实现

简介: 判断是否是空字符串或者无效字符串。数据库里的空对象,如果这一行这一列是null的话,取出来的话不是null,也不是空字符串。我猜测数据库为了填充表格为了让空间连续,所以空填充一些没用的二进制数据,这些数据会做出标记。所以要判断一下类型是否等于DbNull。

在Core里面新建了一个以及目录叫Utils,里面新创建了一个字符串工具类,使用的是拓展类的方法实现的。主要为了其他的工程里操作字符串方便。


判断是否是空字符串或者无效字符串。数据库里的空对象,如果这一行这一列是null的话,取出来的话不是null,也不是空字符串。我猜测数据库为了填充表格为了让空间连续,所以空填充一些没用的二进制数据,这些数据会做出标记。所以要判断一下类型是否等于DbNull。


        //判断对象是否为Null、DBNull、Empty或空白字符串
        public static bool IsNullOrEmpty(this object value)
        {
            bool retVal = false;
            if (value == null || string.IsNullOrWhiteSpace(value.ToString()) || 
                (value.GetType().Equals(DBNull.Value.GetType())))
            {
                retVal = true;
            }
            return retVal;
        }


Object转String函数


 public static string ObjectToString(this object canNullStr)
        {
            return canNullStr.ObjectToString("");
        }
        public static string ObjectToString(this object canNullStr, string defaultStr)
        {
            try
            {
                if ((canNullStr == null) || (canNullStr is DBNull))
                {
                    if (defaultStr != null)
                    {
                        return defaultStr;
                    }
                    return string.Empty;
                }
                //删除头部,以及尾部出现的空格,知道遇到一个非空格的字符串 停止
                return Convert.ToString(canNullStr).Trim();
            }
            catch 
            {
                return defaultStr;
            }
        }


StringToShort函数 和 ObjectToShort函数


        public static short ToShort(this string value)
        {
            short ret = 0;
            short.TryParse(value, out ret);
            return ret;
        }
        public static short ToShort(this object value)
        {
            short ret = 0;
            if (value != null)
            {
                short.TryParse(value.ToString(), out ret);
            }
            return ret;
        }


StringToInt函数和ObjectToInt函数


        public static int ToInt(this string value)
        {
            int ret = 0;
            int.TryParse(value, out ret);
            return ret;
        }
        public static int ToInt(this object value)
        {
            int ret = 0;
            if (value != null)
            {
                int.TryParse(value.ToString(), out ret);
            }
            return ret;
        }


StringToLong函数和ObjectToLong函数


  public static long ToLong(this string value)
        {
            long ret = 0;
            long.TryParse(value, out ret);
            return ret;
        }
        public static long ToLong(this object value)
        {
            long ret = 0;
            if (value != null)
            {
                long.TryParse(value.ToString(), out ret);
            }
            return ret;
        }


StringToFloat函数


      public static float ToFloat(this string value)
        {
            float ret = 0;
            float.TryParse(value, out ret);
            return ret;
        }


完整代码


using System;
using System.Collections.Generic;
using System.Text;
namespace Servers.Core
{
    public static class YFStringUtil
    {
        #region IsNullOrEmpty 验证值是否为null
        //判断对象是否为Null、DBNull、Empty或空白字符串
        public static bool IsNullOrEmpty(this object value)
        {
            bool retVal = false;
            if (value == null || string.IsNullOrWhiteSpace(value.ToString()) || 
                (value.GetType().Equals(DBNull.Value.GetType())))
            {
                retVal = true;
            }
            return retVal;
        }
        #endregion
        #region ObjectToString obj转换成str 自动Trim(修剪?剪枝?)
        public static string ObjectToString(this object canNullStr)
        {
            return canNullStr.ObjectToString("");
        }
        public static string ObjectToString(this object canNullStr, string defaultStr)
        {
            try
            {
                if ((canNullStr == null) || (canNullStr is DBNull))
                {
                    if (defaultStr != null)
                    {
                        return defaultStr;
                    }
                    return string.Empty;
                }
                //删除头部,以及尾部出现的空格,知道遇到一个非空格的字符串 停止
                return Convert.ToString(canNullStr).Trim();
            }
            catch 
            {
                return defaultStr;
            }
        }
        #endregion
        #region ToShort
        public static short ToShort(this string value)
        {
            short ret = 0;
            short.TryParse(value, out ret);
            return ret;
        }
        public static short ToShort(this object value)
        {
            short ret = 0;
            if (value != null)
            {
                short.TryParse(value.ToString(), out ret);
            }
            return ret;
        }
        #endregion
        #region ToInt
        public static int ToInt(this string value)
        {
            int ret = 0;
            int.TryParse(value, out ret);
            return ret;
        }
        public static int ToInt(this object value)
        {
            int ret = 0;
            if (value != null)
            {
                int.TryParse(value.ToString(), out ret);
            }
            return ret;
        }
        #endregion
        #region ToLong
        public static long ToLong(this string value)
        {
            long ret = 0;
            long.TryParse(value, out ret);
            return ret;
        }
        public static long ToLong(this object value)
        {
            long ret = 0;
            if (value != null)
            {
                long.TryParse(value.ToString(), out ret);
            }
            return ret;
        }
        #endregion
        #region ToLong
        public static float ToFloat(this string value)
        {
            float ret = 0;
            float.TryParse(value, out ret);
            return ret;
        }
        #endregion
    }
}
相关文章
|
3月前
|
Java 数据库
在Java中使用Seata框架实现分布式事务的详细步骤
通过以上步骤,利用 Seata 框架可以实现较为简单的分布式事务处理。在实际应用中,还需要根据具体业务需求进行更详细的配置和处理。同时,要注意处理各种异常情况,以确保分布式事务的正确执行。
|
3月前
|
消息中间件 Java Kafka
在Java中实现分布式事务的常用框架和方法
总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
|
2月前
|
存储 监控 数据可视化
常见的分布式定时任务调度框架
分布式定时任务调度框架用于在分布式系统中管理和调度定时任务,确保任务按预定时间和频率执行。其核心概念包括Job(任务)、Trigger(触发器)、Executor(执行器)和Scheduler(调度器)。这类框架应具备任务管理、任务监控、良好的可扩展性和高可用性等功能。常用的Java生态中的分布式任务调度框架有Quartz Scheduler、ElasticJob和XXL-JOB。
600 66
|
1月前
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
93 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
3月前
|
数据库
如何在Seata框架中配置分布式事务的隔离级别?
总的来说,配置分布式事务的隔离级别是实现分布式事务管理的重要环节之一,需要认真对待和仔细调整,以满足业务的需求和性能要求。你还可以进一步深入研究和实践 Seata 框架的配置和使用,以更好地应对各种分布式事务场景的挑战。
146 63
|
1月前
|
人工智能 分布式计算 大数据
MaxFrame 产品评测:大数据与AI融合的Python分布式计算框架
MaxFrame是阿里云MaxCompute推出的自研Python分布式计算框架,支持大规模数据处理与AI应用。它提供类似Pandas的API,简化开发流程,并兼容多种机器学习库,加速模型训练前的数据准备。MaxFrame融合大数据和AI,提升效率、促进协作、增强创新能力。尽管初次配置稍显复杂,但其强大的功能集、性能优化及开放性使其成为现代企业与研究机构的理想选择。未来有望进一步简化使用门槛并加强社区建设。
73 7
|
3月前
|
存储 Java 关系型数据库
在Spring Boot中整合Seata框架实现分布式事务
可以在 Spring Boot 中成功整合 Seata 框架,实现分布式事务的管理和处理。在实际应用中,还需要根据具体的业务需求和技术架构进行进一步的优化和调整。同时,要注意处理各种可能出现的问题,以保障分布式事务的顺利执行。
214 53
|
2月前
|
运维 数据挖掘 索引
服务器数据恢复—Lustre分布式文件系统服务器数据恢复案例
5台节点服务器,每台节点服务器上有一组RAID5阵列。每组RAID5阵列上有6块硬盘(其中1块硬盘设置为热备盘,其他5块硬盘为数据盘)。上层系统环境为Lustre分布式文件系统。 机房天花板漏水导致这5台节点服务器进水,每台服务器都有至少2块硬盘出现故障。每台服务器中的RAID5阵列短时间内同时掉线2块或以上数量的硬盘,导致RAID崩溃,服务器中数据无法正常读取。
|
2月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
109 2
|
3月前
|
消息中间件 运维 数据库
Seata框架和其他分布式事务框架有什么区别
Seata框架和其他分布式事务框架有什么区别
53 1