- 浏览: 468337 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (146)
- Maven (3)
- Quartz (10)
- Hessian (3)
- JDK (42)
- eclipse (4)
- 设计思想 (6)
- XML (8)
- JavaMail (1)
- Spring (11)
- mina (1)
- HsqlDb (1)
- Cache (2)
- Tool (6)
- 心情 (5)
- JQuery (0)
- Hadoop (5)
- Hbase (3)
- 自动构建 (7)
- JNDI (0)
- 代码赏析 (5)
- Oracle (1)
- Excel (4)
- Effective Java (5)
- JAXB (4)
- fdafasdf (1)
- ccc (0)
- web (3)
- concurrent (1)
- CVS (1)
- eclipse plugin (2)
- Apache (10)
最新评论
-
chxiaowu:
nice!
Quartz实现固定执行次数 -
zxjlwt:
学习了。http://surenpi.com
自定义ClassLoader -
kadlly:
public static final Logger log ...
Hessian 权限认证 -
spring_springmvc:
java程序语言学习教程 地址http://www.zuida ...
Java-Final -
liushuiwuyan:
[img][/img]
设计模式-单例
除了对字符串的复杂处理,对于数字,我们也是头大啊,类型,位移等等操作,如果写在程序里,无疑是天文数字,而工具类可以统一计算和管理
package org.ycl.commons.text; import org.apache.commons.lang.StringUtils; /** * 1. leftBit * <li>- 2^N, assign: this seat digit is one Auth</li> * 2. validAuth * <li>- X&N, assign: X' N seat digit has Auth</li> * 3. addAuth * <li>- X|N, assign: set X' N seat digit to 1</li> * 4. removeAuth * <li>- X^N, assign: set X' N seat digit to 0</li> * 5. toInt/toLong/toFloat/toDouble/toByte/toShort * <li>- null-letter safe Number convert</li> * 6. min/max * <li>- find array's min/max</li> * 7. isDigits/isNumber * <li>- judge string is digits/number</li> * * NOTE:this is from my tool box * {@link org.apache.commons.lang.math.NumberUtils} * * @author e557400 * */ public class NumberUtils { /** * <<: move to left, fill 0 in right part * this will be return 2^N * * index * 1 2 * 2 4 * 3 8 * .... * * process * * NUM: 1 BIT: 2^0==> 1 * OP: << left * NUM: 3 * EQ: 1000 ==> BIT: 2^3 ==> 8 * * NOTE: int is 32 bits * exp int i=1, so i's 2 bits' source code: * 00000000000000000000000000000001 * * @param index * @return 2^index */ private static int leftBit(int index){ return 1<<index; } /** * &: only two is 1, then 1, others is 0. * check whether the value's index bit is 1. * * NUM: 6, 1 * leftBig: 1<<1 ==> 10 * 6 ==> 2^2+2^1 ==>110 * OP: 10&110==>10 * * @param value * @param index * @return */ public static boolean validAuth(int value, int index){ return (leftBit(index)&value)==leftBit(index); } /** * |: only two is 0, then 0, others is 1 * add value's index. * * NUM: 6, 3 * leftBig: 1<<3 ==> 1000 * 6 ==> 2^2+2^1 ==>110 * OP: 1000|110==>1110 ==>2^3+6 = 14 * * @param value * @param index * @return */ public static int addAuth(int value, int index){ return leftBit(index)|value; } /** * ^: only two is same, then 0, others is 1 * *NUM: 14, 3 * leftBig: 1<<3 ==> 1000 * 6 ==> 2^3+2^2+2^1 ==>1110 * OP: 1000^1110==>0110 ==>6 * * @param value * @param index * @return */ public static int removeAuth(int value, int index){ if(validAuth(value,index)){ return leftBit(index)^value; }else{ return value; } } /** * <p>Convert a <code>String</code> to an <code>int</code>, returning * <code>zero</code> if the conversion fails.</p> * * <p>If the string is <code>null</code>, <code>zero</code> is returned.</p> * * <pre> * NumberUtils.toInt(null) = 0 * NumberUtils.toInt("") = 0 * NumberUtils.toInt("1") = 1 * </pre> * * @param str the string to convert, may be null * @return the int represented by the string, or <code>zero</code> if * conversion fails * @since 2.1 */ public static int toInt(String str) { return org.apache.commons.lang.math.NumberUtils.toInt(str); } /** * <p>Returns the minimum value in an array.</p> * * @param array an array, must not be null or empty * @return the minimum value in the array * @throws IllegalArgumentException if <code>array</code> is <code>null</code> * @throws IllegalArgumentException if <code>array</code> is empty */ public static long min(long[] array) { // Validates input if (array == null) { throw new IllegalArgumentException("The Array must not be null"); } else if (array.length == 0) { throw new IllegalArgumentException("Array cannot be empty."); } // Finds and returns min long min = array[0]; for (int i = 1; i < array.length; i++) { if (array[i] < min) { min = array[i]; } } return min; } /** * <p>Checks whether the <code>String</code> contains only * digit characters.</p> * * <p><code>Null</code> and empty String will return * <code>false</code>.</p> * * @param str the <code>String</code> to check * @return <code>true</code> if str contains only unicode numeric */ public static boolean isDigits(String str) { if (StringUtils.isEmpty(str)) { return false; } for (int i = 0; i < str.length(); i++) { if (!Character.isDigit(str.charAt(i))) { return false; } } return true; } /** * <p>Checks whether the String a valid Java number.</p> * * <p>Valid numbers include hexadecimal marked with the <code>0x</code> * qualifier, scientific notation and numbers marked with a type * qualifier (e.g. 123L).</p> * * <p><code>Null</code> and empty String will return * <code>false</code>.</p> * * @param str the <code>String</code> to check * @return <code>true</code> if the string is a correctly formatted number */ public static boolean isNumber(String str) { if (StringUtils.isEmpty(str)) { return false; } char[] chars = str.toCharArray(); int sz = chars.length; boolean hasExp = false; boolean hasDecPoint = false; boolean allowSigns = false; boolean foundDigit = false; // deal with any possible sign up front int start = (chars[0] == '-') ? 1 : 0; if (sz > start + 1) { if (chars[start] == '0' && chars[start + 1] == 'x') { int i = start + 2; if (i == sz) { return false; // str == "0x" } // checking hex (it can't be anything else) for (; i < chars.length; i++) { if ((chars[i] < '0' || chars[i] > '9') && (chars[i] < 'a' || chars[i] > 'f') && (chars[i] < 'A' || chars[i] > 'F')) { return false; } } return true; } } sz--; // don't want to loop to the last char, check it afterwords // for type qualifiers int i = start; // loop to the next to last char or to the last char if we need another digit to // make a valid number (e.g. chars[0..5] = "1234E") while (i < sz || (i < sz + 1 && allowSigns && !foundDigit)) { if (chars[i] >= '0' && chars[i] <= '9') { foundDigit = true; allowSigns = false; } else if (chars[i] == '.') { if (hasDecPoint || hasExp) { // two decimal points or dec in exponent return false; } hasDecPoint = true; } else if (chars[i] == 'e' || chars[i] == 'E') { // we've already taken care of hex. if (hasExp) { // two E's return false; } if (!foundDigit) { return false; } hasExp = true; allowSigns = true; } else if (chars[i] == '+' || chars[i] == '-') { if (!allowSigns) { return false; } allowSigns = false; foundDigit = false; // we need a digit after the E } else { return false; } i++; } if (i < chars.length) { if (chars[i] >= '0' && chars[i] <= '9') { // no type qualifier, OK return true; } if (chars[i] == 'e' || chars[i] == 'E') { // can't have an E at the last byte return false; } if (chars[i] == '.') { if (hasDecPoint || hasExp) { // two decimal points or dec in exponent return false; } // single trailing decimal point after non-exponent is ok return foundDigit; } if (!allowSigns && (chars[i] == 'd' || chars[i] == 'D' || chars[i] == 'f' || chars[i] == 'F')) { return foundDigit; } if (chars[i] == 'l' || chars[i] == 'L') { // not allowing L with an exponent return foundDigit && !hasExp; } // last character is illegal return false; } // allowSigns is true iff the val ends in 'E' // found digit it to make sure weird stuff like '.' and '1E-' doesn't pass return !allowSigns && foundDigit; } public static void main(String args[]){ System.out.println(leftBit(1)); System.out.println(leftBit(2)); System.out.println(leftBit(3)); System.out.println(leftBit(4)); System.out.println(addAuth(6,3)); System.out.println(validAuth(6,1)); System.out.println(validAuth(6,2)); System.out.println(validAuth(14,3)); System.out.println(removeAuth(6,3)); System.out.println(org.apache.commons.lang.math.NumberUtils.isNumber("")); System.out.println(org.apache.commons.lang.math.NumberUtils.isNumber(" ")); System.out.println(org.apache.commons.lang.math.NumberUtils.isNumber(null)); } }
发表评论
-
commons-httpClient Helper
2016-09-27 19:27 827使用HttpClient来发送请求获取数据最经典,以下呢我们使 ... -
commons-httpClient Helper
2016-09-27 19:34 798使用HttpClient来发送请求获取数据最经典,以下呢我们使 ... -
commons-logging
2015-04-13 10:22 948我想,这个包是Apache开源里面用的最多的包,被各种开源使用 ... -
commons-io FileUtils Helper
2015-04-13 10:10 1911commons-io主要对输入流,输出流的打开和关闭,主要是对 ... -
commons-lang
2015-04-13 10:04 694这个包处了String和Number的封装,还有对Date, ... -
commons-lang StringUtilHelper
2015-04-13 09:40 975其实对字符串的处理,一般一个项目的core会建一个,最经典的算 ... -
commons-dbutils Helper VS JDBCTemplate
2015-04-10 17:03 3823这两个JDBC轻量分装框架的确都是刚刚的。 但是相对来说co ... -
commons-dbutils Helper
2015-04-09 17:00 3178封装下dbutils, 使用这个help去操作数据库会非常的方 ... -
commons-dbutils
2015-04-09 11:26 1490现在ORM框架很多,什么Hibernate,ibatis等等。 ...
相关推荐
赠送jar包:commons-lang-2.6.jar; 赠送原API文档:commons-lang-2.6-javadoc.jar; 赠送源代码:commons-lang-2.6-sources.jar; 包含翻译后的API文档:commons-lang-2.6-javadoc-API文档-中文(简体)版.zip ...
赠送jar包:commons-lang3-3.12.0.jar; 赠送原API文档:commons-lang3-3.12.0-javadoc.jar; 赠送源代码:commons-lang3-3.12.0-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.12.0.pom; 包含翻译后的API...
赠送jar包:commons-lang3-3.9.jar; 赠送原API文档:commons-lang3-3.9-javadoc.jar; 赠送源代码:commons-lang3-3.9-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.9.pom; 包含翻译后的API文档:...
赠送jar包:commons-lang3-3.12.0.jar; 赠送原API文档:commons-lang3-3.12.0-javadoc.jar; 赠送源代码:commons-lang3-3.12.0-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.12.0.pom; 包含翻译后的API...
赠送jar包:commons-lang3-3.10.jar; 赠送原API文档:commons-lang3-3.10-javadoc.jar; 赠送源代码:commons-lang3-3.10-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.10.pom; 包含翻译后的API文档:...
赠送jar包:commons-lang3-3.4.jar; 赠送原API文档:commons-lang3-3.4-javadoc.jar; 赠送源代码:commons-lang3-3.4-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.4.pom; 包含翻译后的API文档:...
赠送jar包:commons-lang3-3.7.jar; 赠送原API文档:commons-lang3-3.7-javadoc.jar; 赠送源代码:commons-lang3-3.7-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.7.pom; 包含翻译后的API文档:...
赠送jar包:commons-lang3-3.3.2.jar; 赠送原API文档:commons-lang3-3.3.2-javadoc.jar; 赠送源代码:commons-lang3-3.3.2-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.3.2.pom; 包含翻译后的API文档...
赠送jar包:commons-lang3-3.10.jar; 赠送原API文档:commons-lang3-3.10-javadoc.jar; 赠送源代码:commons-lang3-3.10-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.10.pom; 包含翻译后的API文档:...
赠送jar包:commons-lang-2.4.jar; 赠送原API文档:commons-lang-2.4-javadoc.jar; 赠送源代码:commons-lang-2.4-sources.jar; 赠送Maven依赖信息文件:commons-lang-2.4.pom; 包含翻译后的API文档:commons-...
赠送jar包:commons-lang3-3.5.jar; 赠送原API文档:commons-lang3-3.5-javadoc.jar; 赠送源代码:commons-lang3-3.5-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.5.pom; 包含翻译后的API文档:...
本资源包含了两个不同版本的Lang包:`commons-lang3-3.7.jar` 和 `commons-lang-2.6.jar`。这两个版本分别代表了Lang项目在不同时间点的发展状态,它们各自具有不同的特性和功能,适用于不同需求的项目。 `commons-...
commons-lang.jar是日常编程中必不可少的一个jar包,在日常java编程中,经常会使用到commons-lang.jar包,还没有准备commons-lang.jar包的用户可以前来下载使用,本站不仅为大家提供了commons-lang3-3.1.jar下载地址
这个"commons-lang-2.4.rar"压缩包包含了两个子文件,分别是"commons-lang-2.4-bin.zip"和"commons-lang-2.4-src.zip"。 "commons-lang-2.4-bin.zip"文件是编译后的二进制版本,包含了commons-lang库的JAR文件。这...
commons-lang-2.6.jar包commons-lang-2.6.jar包commons-lang-2.6.jar包commons-lang-2.6.jar包commons-lang-2.6.jar包加源码
赠送jar包:commons-lang3-3.8.jar; 赠送原API文档:commons-lang3-3.8-javadoc.jar; 赠送源代码:commons-lang3-3.8-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.8.pom; 包含翻译后的API文档:...
commons-lang-1.0-b1.jar commons-lang-1.0.1.jar commons-lang-2.0.jar commons-lang-2.1-javadoc.jar commons-lang-2.1-sources.jar commons-lang-2.1.jar commons-lang-2.3.jar commons-lang-2.4-sources.jar ...
开发工具 commons-lang3-3.4开发工具 commons-lang3-3.4开发工具 commons-lang3-3.4开发工具 commons-lang3-3.4开发工具 commons-lang3-3.4开发工具 commons-lang3-3.4开发工具 commons-lang3-3.4开发工具 commons-...
赠送jar包:commons-lang-2.6.jar; 赠送原API文档:commons-lang-2.6-javadoc.jar; 赠送源代码:commons-lang-2.6-sources.jar; 包含翻译后的API文档:commons-lang-2.6-javadoc-API文档-中文(简体)-英语-对照...
commons-lang.jar是日常编程中必不可少的一个jar包,在日常java编程中,经常会使用到commons-lang.jar包,还没有准备commons-lang.jar包的用户可以前来下载使用,这里为大家提供了commons-lang3-3.1.jar