package com.liveyc.framework.util;

 import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer; import org.apache.commons.collections.CollectionUtils; /**
* @author aitf
* @version 创建时间:2016年12月15日 下午2:38:30
* 类说明
*/
public class StringUtil { /**
* <li>判断字符串是否为空值</li>
* <li>NULL、空格均认为空值</li>.
*
* @param value
* the value
*
* @return true, if checks if is empty
*/
public static boolean isEmpty(String value) {
return null == value || "".equals(value.trim());
} /**
* 去除,分隔符,用于金额数值去格式化.
*
* @param value
* the value
*
* @return the string
*/
public static String decimal(String value) {
if (null == value || "".equals(value.trim())) {
return "0";
} else {
return value.replaceAll(",", "");
}
} /**
* 在数组中查找字符串.
*
* @param params
* the params
* @param name
* the name
* @param ignoreCase
* the ignore case
*
* @return the int
*/
public static int indexOf(String[] params, String name, boolean ignoreCase) {
if (params == null)
return -1;
for (int i = 0, j = params.length; i < j; i++) {
if (ignoreCase && params[i].equalsIgnoreCase(name)) {
return i;
} else if (params[i].equals(name)) {
return i;
}
}
return -1;
} /**
* 查询Str2在Str1中出现几次
*
* @param str1
* @param str2
* @return
*/
public static int indexAllOf(String str1, String str2) {
int he = 0;
for (int i = 0; i < str1.length(); i++) {
int t = str1.indexOf(str2, i);
if (i == t) {
he++;
}
}
return he;
} /**
* 将字符转数组.
*
* @param str
* the str
*
* @return the string[]
*/
public static String[] toArr(String str) {
String inStr = str;
String a[] = null;
try {
if (null != inStr) {
StringTokenizer st = new StringTokenizer(inStr, ",");
if (st.countTokens() > 0) {
a = new String[st.countTokens()];
int i = 0;
while (st.hasMoreTokens()) {
a[i++] = st.nextToken();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return a;
} /**
* 将字符转数组.
*
* @param str
* the str
* @param splitChar
* the split char
*
* @return the string[]
*/
public static String[] toArr(String str, String splitChar) {
String inStr = str;
String a[] = null;
try {
if (null != inStr) {
StringTokenizer st = new StringTokenizer(inStr, splitChar);
if (st.countTokens() > 0) {
a = new String[st.countTokens()];
int i = 0;
while (st.hasMoreTokens()) {
a[i++] = st.nextToken();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return a;
} /**
* 字符串数组包装成字符串.
*
* @param ary
* the ary
* @param s
* 包装符号如 ' 或 "
*
* @return the string
*/
public static String toStr(String[] ary, String s) {
if (ary == null || ary.length < 1)
return "";
StringBuffer bf = new StringBuffer();
bf.append(s);
bf.append(ary[0]);
for (int i = 1; i < ary.length; i++) {
bf.append(s).append(",").append(s);
bf.append(ary[i]);
}
bf.append(s);
return bf.toString();
} /**
* 得到字符的编码格式
*
* @param str
* @return
*/
public static String getEncoding(String str) {
String encode = "GB2312";
try {
if (str.equals(new String(str.getBytes(encode), encode))) {
String s = encode;
return s;
}
} catch (Exception exception) {
}
encode = "ISO-8859-1";
try {
if (str.equals(new String(str.getBytes(encode), encode))) {
String s1 = encode;
return s1;
}
} catch (Exception exception1) {
}
encode = "UTF-8";
try {
if (str.equals(new String(str.getBytes(encode), encode))) {
String s2 = encode;
return s2;
}
} catch (Exception exception2) {
}
encode = "GBK";
try {
if (str.equals(new String(str.getBytes(encode), encode))) {
String s3 = encode;
return s3;
}
} catch (Exception exception3) {
}
return "";
} /**
* utf8转码 Description :.
*
* @param str
* the str
*
* @return the string
*/
public static String utf8Decoder(String str) {
try {
if (str != null) {
return URLDecoder.decode(str, "UTF-8");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return str;
} public static String changeCharset(String str, String oldCharset, String newCharset)
throws UnsupportedEncodingException {
if (str != null) {
// 用旧的字符编码解码字符串。解码可能会出现异常。
byte[] bs = str.getBytes(oldCharset);
// 用新的字符编码生成字符串
return new String(bs, newCharset);
}
return null;
} /**
* 过滤掉高亮的html
* @param str
* @return
*/
public static String htmlFilter(String str) {
if (isEmpty(str)) {
return str;
}
str = str.replace("<font color='red'>", "");
str = str.replace("<font color='blue'>", "");
str = str.replace("</font>", ""); return str;
} public static String trimString(String str){
if(isEmpty(str)){
return str;
}
return str.trim();
} public static String encodeToUtf(String str) throws Exception {
if(isEmpty(str)){
return str;
}
return new String(str.getBytes("iso-8859-1"), "UTF-8");
} /**
* 根据身份证号转性别
* @param sfzh
* @return
*/
public static String converToSex(String sfzh){
int sex = 0;
if(StringUtil.isEmpty(sfzh)){
return "";
}else{
if(sfzh.length()==15){
sex = Integer.parseInt(sfzh.substring(13,14));
}else if(sfzh.length()==18){
sex = Integer.parseInt(sfzh.substring(16,17));
}
if(sex%2 == 0){
return "女";
}else{
return "男";
}
}
} /**
* 设置地址的Map,并去重
* @param addrMap
* @param fromType
* @param addrs
*/
public static void setAddr2Map(Map addrMap,String addrs,String fromType){
String[] addrls = null ;
if(addrMap==null){
addrMap = new HashMap();
}
if(addrMap.containsKey(fromType)){
String strAddr = (String)addrMap.get(fromType);
if(strAddr!=null && strAddr.trim().length()>0){
addrls = strAddr.split(",");
} if(!isExsit(addrls,addrs)){
strAddr +=","+addrs;
addrMap.put(fromType, strAddr);
}
}else{
addrMap.put(fromType, addrs);
}
} /**
* 字符口串是否在数据组存在
* @param addrls
* @param addrs
* @return
*/
private static boolean isExsit(String[] addrls,String addrs){
if(addrls!=null && addrls.length>0){
for(int i=0;i<addrls.length;i++){
if(addrls[i].equals(addrs)){
return true;
}
}
}
return false;
}
/**
* 把Map转换成String
* @param addrMap
* @return
*/
public static String convMap2String(Map addrMap){
StringBuilder tempBuf =new StringBuilder();
Iterator<Map.Entry> it = addrMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
String fldName = entry.getKey();
String fldValue = entry.getValue();
tempBuf.append(fldValue).append("(").append(fldName).append(");");
}
return tempBuf.toString();
} //字节转换
public static String formetFileSize(long fileS) { DecimalFormat df = new DecimalFormat("#.00");
String fileSizeString = "";
if (fileS < 1024) {
fileSizeString = df.format((long) fileS) + "B";
} else if (fileS < 1048576) {
fileSizeString = df.format((long) fileS / 1024) + "KB";
} else if (fileS < 1073741824) {
fileSizeString = df.format((long) fileS / 1048576) + "MB";
} else if(fileS < 1099511627776l) {
fileSizeString = df.format((long) fileS / 1073741824) + "GB";
} else{
fileSizeString = df.format((long) fileS / 1099511627776l) + "TB";
}
return fileSizeString;
} public static void main(String[] args) { long a = 1948065583104l;
System.out.println(formetFileSize(a));
} }

String类的一些常用操作方法的更多相关文章

  1. String 类上的常用操作

    java 中String 类上的常用操作: 首先创建对象  String line = new String("String demo"); String line2 = new ...

  2. string类(二、常用string函数)

    常用string相关,参至System.String类: 1/ string.Length a.Length字符串长度 string a="a5"; //a.Length==2 s ...

  3. String类有哪些常用的方法

    String类常用方法 1.String类长度:String没有length的属性,有length()这个方法,可以获取字符串的长度. 可以求得字符串s的长度,但是该长度会包含空格. 2.indexO ...

  4. String类中一些常用的函数

    1 CharAt(index) : 通过他的索引来获取元素 @Test public void test1(){ String a="dfjkdjfd134"; for(int i ...

  5. Java——String类(常用类)

    一.String类——描述字符串 常用的方法简单介绍: 1.charAt() 获取对应位置的字符 2.length() 获取字符串的长度 3.concat() 在字符串的尾部追加内容-----相当于连 ...

  6. String类常用方法练习

    String 类代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 字符串是常量:它们的值在创建之后不能更改.字符串缓冲区支持可变的字符串. ...

  7. 字符串处理总结之一(C#String类)

    C#(静态String类) C#中提供了比较全面的字符串处理方法,很多函数都进行了封装为我们的编程工作提供了很大的便利.System.String是最常用的字符串操作类,可以帮助开发者完成绝大部分的字 ...

  8. C#(静态String类)

    [转]http://blog.csdn.net/angelazy/article/details/8501776 C#中提供了比较全面的字符串处理方法,很多函数都进行了封装为我们的编程工作提供了很大的 ...

  9. Java基础:String类详解,案例用户登录实现,案例手机号截取实现,案例敏感词替换实现;StringBuilder类详解,StringBuilder和String相互转换,附练习案例.

    1.API 1.1 API概述-帮助文档的使用 什么是API API (Application Programming Interface) :应用程序编程接口 java中的API 指的就是 JDK ...

随机推荐

  1. CentOS7实现RabbitMQ高可用集群

    CentOS安装RabbitMQ集群 1.有3台已安装RabbitMQ的机器 192.168.38.133 rabbitmq1 192.168.38.137 rabbitmq2 192.168.38. ...

  2. 【Nginx】均衡负载权重模式实现session数据同步

    思路:把session存放到一个公共redis服务器上 每次浏览器请求服务端都会带上cookie,因为使用的是权重负载均衡方案,因此nginx反向代理服务器会把请求发放到不同的服务端,服务端用cook ...

  3. js 实现路由功能

    class Router { constructor() { this.routes = [] } handle(pattern, handler) { this.routes.push({ patt ...

  4. Mybatis 中 sql 语句的占位符 #{} 和 ${}

    #{} 表示一个占位符号,通过 #{} 可以实现 preparedStatement 向占位符中设置值,自动进行 java 类型和 jdbc 类型转换.#{} 可以有效防止   sql注入. #{}  ...

  5. 洛谷P3938 斐波那契

    题目戳 题目描述 小 C 养了一些很可爱的兔子. 有一天,小 C 突然发现兔子们都是严格按照伟大的数学家斐波那契提出的模型来进行 繁衍:一对兔子从出生后第二个月起,每个月刚开始的时候都会产下一对小兔子 ...

  6. 【模考】2018.04.08 Connection

    Description 给定一张N个点M条边的连通无向图,问最少需要断开多少条边使得这张图不再连通. Input 第一行两个整数N,M含义如题所示. 接下来M行,每行两个正整数x,y,表示x和y之间有 ...

  7. [ZJOI2014]力 FFT

    题面 题解: \[F_j = \sum_{i < j}\frac{q_iq_j}{(i - j)^2} - \sum_{i > j}{\frac{q_iq_j}{(i - j)^2}}\] ...

  8. 【BZOJ4152】The Captain(最短路)

    [BZOJ4152]The Captain(最短路) 题面 BZOJ Description 给定平面上的n个点,定义(x1,y1)到(x2,y2)的费用为min(|x1-x2|,|y1-y2|),求 ...

  9. Win10如何搭建FTP服务器以实现快速传输文件

    原文链接地址:http://blog.csdn.net/bai_langtao/article/details/77751447 Win10如何搭建FTP服务器以实现快速传输文件?相信大家在工作或生活 ...

  10. thusc2018酱油记

    day-1 打点行囊,从学校出发去火车站 day0 在火车上一觉醒来便快到了北京,直接前往了宾馆安置 下午报道,一脸向往地第一次走入清华园,感觉十分的梦幻,心里一直喃喃:"希望以后也能经常在 ...