stringutils

Is there an alternative to StringUtils.isNumeric that does what I mean?

匿名 (未验证) 提交于 2019-12-03 03:04:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: StringUtils.isNumeric returns true for "" and false for 7.8. This is of course it's documented behavior, but really not the most convenient for me. Is there something else (ideally in commons.lang) that provides an isActuallyNumeric? 回答1: Try isNumber(String) from org.apache.commons.lang.math.NumberUtils . Checks whether the String [is] a valid Java number. Valid numbers include hexadecimal marked with the 0x qualifier, scientific notation and numbers marked with a type qualifier (e.g. 123L). Null and empty String will return false . UPDATE

Can you please explain this C++ delete problem?

匿名 (未验证) 提交于 2019-12-03 01:00:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 翻译 强力驱动 问题: I have the following code: std :: string F () { WideString ws = GetMyWideString (); std :: string ret ; StringUtils :: ConvertWideStringToUTF8 ( ws , ret ); return ret ; } WideString is a third-party class, so are StringUtils. They are a blackbox to me. Second parameter is passed by reference. When I step through the debugger the line return ret throws a nasty popup (Visual C++) saying that heap may be corrupted. Upon closer examination copy of the string that gets returned is OK, but the deletion of ret fails. ret contains correct

StringUtils里的isEmpty方法和isBlank方法的区别

匿名 (未验证) 提交于 2019-12-03 00:18:01
isEmpty public static boolean isEmpty(String str) { return str == null || str.length() == 0;} isBlank public static boolean isBlank(String str) { int strLen; if (str != null && (strLen = str.length()) != 0) { for(int i = 0; i < strLen; ++i) { if (!Character.isWhitespace(str.charAt(i))) { //判断字符是否为空格、制表符、tab return false; } } return true; } else { return true; } } 通过以上代码我们可以看出: 是否为空和是否存在 为判断依据。 isEmpty的基础上进行了为空的判断 。(一般更为常用) 大家可以下面的例子取体会一下。 StringUtils.isEmpty("yyy") = false StringUtils.isEmpty("") = true StringUtils.isEmpty(" ") = false StringUtils.isBlank("yyy") = false StringUtils.isBlank("")

避免Java中NullPointerException的Java技巧和最佳实践

拥有回忆 提交于 2019-12-02 18:20:58
Java应用程序中的NullPointerException是解决它的最佳方法,这也是编写可以立即运行的健壮程序的关键。而是它说的“预防胜于治疗”,讨厌的NullPointerException也是如此。 值得庆幸的是,通过应用一些防御性编码技术并遵循应用程序多个部分之间的约定,您可以在一定程度上避免Java中的NullPointerException。 顺便说一下,在本文中,我们将学习一些Java的编码技术和最佳实践,这些技巧和最佳实践可用于避免的Java中的空指针异常。遵循这些Java的技巧还可以最大程度地减少很多Java代码中的 x !=NULL 检查。 作为经验丰富的Java的程序员,您可能已经知道其中一些技巧,并且已经在项目中遵循了这些技巧,但是对于新手和中级 发人员来说,这可能是个不错的学习机会。顺便说一句,如果您知道其他避免Java中的NullPointerException并减少的Java中的空检查的Java的技巧,请点击 文末阅读原文 与我们分享。 Java技巧和最佳实践 这些都是简单的技术,很容易遵循,但是对代码质量和健壮性有重大影响。以我的经验,仅第一个技巧就可以显着提高代码质量。如前所述,如果您知道任何其他Java技巧或最佳实践,可以帮助减少空检查,那么可以通过 文末阅读原文 评论本文与我们分享。 1)在已知的字符串而不是未知的对象上调用equals(

StringUtils.isBlank(str)和StringUtils.isEmpty(str)的区别

纵饮孤独 提交于 2019-12-02 03:44:20
StringUtils.isBlank(str)和StringUtils.isEmpty(str)的区别还是看他们的实现有何不同 StringUtils.isEmpty(CharSequence cs)实现源码 public static boolean isEmpty(CharSequence cs) { return cs == null || cs.length() == 0; } 从源码发现StringUtils.isEmpty(CharSequence cs)是判断了cs为null或cs.length()=0,但是我们要判断空白字符或者换行符等特殊的转义字符时,它的长度都是大于0的,所以用isEmpty判断是不行的 StringUtils.isBlank(CharSequence cs)实现源码 public static boolean isBlank(CharSequence cs) { int strLen; if (cs != null && (strLen = cs.length()) != 0) { for(int i = 0; i < strLen; ++i) { if (!Character.isWhitespace(cs.charAt(i))) { return false; } } return true; } else { return true;

lucene

扶醉桌前 提交于 2019-12-02 03:04:54
1. 高亮 HighlighterPtr highlighter; if (indices_data_[ctx->current_index_]->high_light_ == 1){ SimpleHTMLFormatterPtr formatter = newLucene<SimpleHTMLFormatter>(indices_data_[ctx->current_index_]->pre_tag_, indices_data_[ctx->current_index_]->post_tag_); LOG(DEBUG) << "pre_tag:" << StringUtils::toUTF8(indices_data_[ctx->current_index_]->pre_tag_); LOG(DEBUG) << "post_tag:" << StringUtils::toUTF8(indices_data_[ctx->current_index_]->post_tag_); QueryPtr qquery = query; if (ctx->query_deformed_ == 1){ string err; qquery = QueryBuilder::BuildQueryEx(analyzer, ctx->kw_r_, ctx->filters_r_, 0, indices

java开发编码规范

陌路散爱 提交于 2019-12-01 19:01:32
方法的返回类型, 方法参数, 变量声明时均采用接口类型, 而不是实际类型: /** 定义接口变量为接受类型的好处: 1).面向接口编程 一种规范约束 制定者(或者叫协调者),实现者(或者叫生产者),调用者(或者叫消费者)。 接口本质上就是由制定者来协调实现者和调用者之间的关系。 只有实现者和调用者都遵循“面向接口编程”这个准则,制定者的协调目的才能达到。 接口的语义是can-do语义,表约束(Constraint)。 像JDBC的规范API,不管你使用哪一套实现,我们使用的时候都是使用相同的API. 分离设计与实现 使得系统可以支持开闭原则和依赖倒转原则。设计师可以设计出接口,而程序员可以依照接口去写实现。 2).解耦合 在一定程度上解耦合,依赖接口还不依赖具体实现,在替换实现类的时候,可以将影响减到最小. 3).在依赖接口的情况下,单元测试更容易,使用mock也更容易,在TDD中,测试驱动就是要让程序易于测试。 4).与设计有关 在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。 在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了; 而各个对象之间的协作关系则成为系统设计的关键。 在OSGI规范中,接口与实现的分离是用得最淋漓尽致的。 5).参考spring中的IOC的实现 */ public Map<String, Object>

Mybatis中的statementType使用

时光怂恿深爱的人放手 提交于 2019-11-30 17:59:29
<select id = "selectPage" resultMap= "BaseResultMap" statementType= "STATEMENT" > select <include refid= "Base_Column_List" /> from finance_user_new_acct where 1 = 1 and id between ${beginningId} and ${endingId} </select> 如果使用了 statementType=”STATEMENT” #{xxx} 的#就不能用了 需要换成${xxx}偷笑 我觉得mybatis传值是map的 在mapper中取值最好用${} <update id = "deleteByBank" parameterType= "java.lang.String" > update withholding_bank_channel_manager set is_deleted= 1 where bank= #{bank,jdbcType=VARCHAR } and is_deleted=0 </update> 这样的传值比较常见 最好附带一个工具类: commons.lang3.StringUtils StringUtils.join(Object array[],String separator)

spring data jpa Specification 复杂查询+分页查询

懵懂的女人 提交于 2019-11-28 15:58:54
当Repository接口继承了JpaSpecificationExecutor后,我们就可以使用如下接口进行分页查询: /** * Returns a {@link Page} of entities matching the given {@link Specification}. * * @param spec can be {@literal null}. * @param pageable must not be {@literal null}. * @return never {@literal null}. */ Page<T> findAll(@Nullable Specification<T> spec, Pageable pageable); 结合jpa-spec可以很容易构造出Specification: jpa-spec github地址: https://github.com/wenhao/jpa-spec public Page<Person> findAll(SearchRequest request) { Specification<Person> specification = Specifications.<Person>and() .eq(StringUtils.isNotBlank(request.getName()), "name",

记录开源雪花算法文档

ⅰ亾dé卋堺 提交于 2019-11-28 15:40:49
UidGenerator:readme https://github.com/lyg123/uid-generator/blob/master/README.zh_cn.md leaf readme https://tech.meituan.com/2019/03/07/open-source-project-leaf.html tinyid https://github.com/didi/tinyid/wiki Tinyid是用Java开发的一款分布式id生成系统,基于数据库号段算法实现,关于这个算法可以参考美团leaf或者tinyid原理介绍。Tinyid扩展了leaf-segment算法,支持了多db(master),同时提供了java-client(sdk)使id生成本地化,获得了更好的性能与可用性。Tinyid在滴滴客服部门使用,均通过tinyid-client方式接入,每天生成亿级别的id。 UidGenerator:百度开源的分布式ID服务(解决了时钟回拨问题)分析 https://mp.weixin.qq.com/s?__biz=MzU5ODUwNzY1Nw==&mid=100000822&idx=1&sn=fa522bf140585252a61b177e82296271&chksm