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. OSG学习:用多通道(multiple passes)实现透明度

    osgFX库提供了一个用于多通道渲染(multi-pass rendering)的框架.每个你想要渲染的子图都应该被添加到osgFX::Effect节点,多通道技术的定义和使用都可以在这个节点中完成. ...

  2. WPF和Expression Blend开发实例:充分利用Blend实现一个探照灯的效果

    本篇文章阅读的基础是在读者对于WPF有一定的了解并且有WPF相关的编码经验,对于Blend的界面布局有基础的知识.文章中对于相应的在Blend中的操作进行演示,并不会进行细致到每个属性的介绍.同时,本 ...

  3. 【Leetcode】72 Edit Distance

    72. Edit Distance Given two words word1 and word2, find the minimum number of steps required to conv ...

  4. Node.js系列——(3)连接DB

    背景 node.js,有人称之为运行在服务器端的JavaScript.以往我们使用JavaScript时,都是依赖后端查询数据库并返回数据,而JavaScript只需要展示即可.问题来了,就不能绕开后 ...

  5. workstation vmware 制作vm模板

    [root@VM166136 ~]# cat copy_vmware.sh #!/bin/bash if [ $(id -u) -ne 0 ];then echo "Please use t ...

  6. Visual Studio 中设置npm

    VS2017自带的npm会去国外的镜像下载文件, 奇慢无比, 还是马云家淘宝的镜像适合国内用户. 淘宝npm镜像地址:  https://registry.npm.taobao.org VS中使用淘宝 ...

  7. 【EF】Entity Framework Core 命名约定

    本文翻译自<Entity Framework Core: Naming Convention>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 注意:我使用的是 Entity ...

  8. Hadoop基于Protocol Buffer的RPC实现代码分析-Server端--转载

    原文地址:http://yanbohappy.sinaapp.com/?p=110 最新版本的Hadoop代码中已经默认了Protocol buffer(以下简称PB,http://code.goog ...

  9. 【bzoj5099】[POI2018]Pionek 双指针法

    题目描述 给你 $n$ 个平面向量,选出它们中的一部分,使得它们的和的长度最大.求这个最大长度的平方. 输入 第一行包含一个正整数n(n<=200000),表示指令条数. 接下来n行,每行两个整 ...

  10. [十三]SpringBoot 之 过滤器(Filter)和监听器(Listener)

    过滤器(Filter)和 监听器(Listener)的注册方法和 Servlet 一样,不清楚的可以查看下上一篇文章 代码示例 package me.shijunjie.filter; import ...