String类的一些常用操作方法
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类的一些常用操作方法的更多相关文章
- String 类上的常用操作
java 中String 类上的常用操作: 首先创建对象 String line = new String("String demo"); String line2 = new ...
- string类(二、常用string函数)
常用string相关,参至System.String类: 1/ string.Length a.Length字符串长度 string a="a5"; //a.Length==2 s ...
- String类有哪些常用的方法
String类常用方法 1.String类长度:String没有length的属性,有length()这个方法,可以获取字符串的长度. 可以求得字符串s的长度,但是该长度会包含空格. 2.indexO ...
- String类中一些常用的函数
1 CharAt(index) : 通过他的索引来获取元素 @Test public void test1(){ String a="dfjkdjfd134"; for(int i ...
- Java——String类(常用类)
一.String类——描述字符串 常用的方法简单介绍: 1.charAt() 获取对应位置的字符 2.length() 获取字符串的长度 3.concat() 在字符串的尾部追加内容-----相当于连 ...
- String类常用方法练习
String 类代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 字符串是常量:它们的值在创建之后不能更改.字符串缓冲区支持可变的字符串. ...
- 字符串处理总结之一(C#String类)
C#(静态String类) C#中提供了比较全面的字符串处理方法,很多函数都进行了封装为我们的编程工作提供了很大的便利.System.String是最常用的字符串操作类,可以帮助开发者完成绝大部分的字 ...
- C#(静态String类)
[转]http://blog.csdn.net/angelazy/article/details/8501776 C#中提供了比较全面的字符串处理方法,很多函数都进行了封装为我们的编程工作提供了很大的 ...
- Java基础:String类详解,案例用户登录实现,案例手机号截取实现,案例敏感词替换实现;StringBuilder类详解,StringBuilder和String相互转换,附练习案例.
1.API 1.1 API概述-帮助文档的使用 什么是API API (Application Programming Interface) :应用程序编程接口 java中的API 指的就是 JDK ...
随机推荐
- [2017BUAA软工]第三次博客作业:案例分析
第三次博客作业:案例分析 1. 调研和评测 1.1 BUG及设计缺陷描述 主要测试博客园在手机端上的使用情况. [BUG 01] 不能后退到上一界面(IOS) 重现步骤:打开博客首页中任意博文,点击博 ...
- CodeForces Round #527 (Div3) B. Teams Forming
http://codeforces.com/contest/1092/problem/B There are nn students in a university. The number of st ...
- maven 实践 :管理依赖
有人认为Maven是一个依赖管理工具,当然这种想法是错误的(确切的说Maven是一个项目管理工具,贯穿了整个项目生命周期,编译,测试,打包,发布...),但Maven给人造成这种错误的印象也是有原因的 ...
- 第116天: Ajax运用artTemplate实现菜谱
Ajax运用artTemplate实现菜谱 一.获取接口数据 1.聚合数据API https://www.juhe.cn,在这上面找到菜谱大全数据接口文档 具体使用是这样的: key后面的数据是 ...
- CF708C-Centroids
题目 一棵树的重心定义为一个点满足删除这个点后最大的连通块大小小于等于原来这颗树大小的一半. 给出一棵树,一次操作为删除一条边再添加一条边,操作结束后必须仍为一棵树.问这颗树的每个点是否可以通过一次操 ...
- 【loj6307】「雅礼国庆 2017 Day1」Clique 贪心
题目描述 数轴上有 $n$ 个点,第 $i$ 个点的坐标为 $x_i$ 权值为 $w_i$ .两个点 $i,j$ 之间存在一条边当且仅当 $|x_i−x_j|\le w_i+w_j$ . 你需要求出这 ...
- 【bzoj2351】[BeiJing2011]Matrix 二维Hash
题目描述 给定一个M行N列的01矩阵,以及Q个A行B列的01矩阵,你需要求出这Q个矩阵哪些在原矩阵中出现过.所谓01矩阵,就是矩阵中所有元素不是0就是1. 输入 输入文件的第一行为M.N.A.B,参见 ...
- addEventListener和attachEvent区别
addEventListener()是标准的绑定事件监听函数的方法,是W3C所支持的,Chrome.FireFox.Opera.Safari.IE9.0及其以上版本都支持该函数:但是,IE8.0及其以 ...
- [您有新的未分配科技点]博弈论进阶:似乎不那么恐惧了…… (SJ定理,简单的基础模型)
这次,我们来继续学习博弈论的知识.今天我们会学习更多的基础模型,以及SJ定理的应用. 首先,我们来看博弈论在DAG上的应用.首先来看一个小例子:在一个有向无环图中,有一个棋子从某一个点开始一直向它的出 ...
- angular 的 @Input、@Output 的一个用法
angular 使用 @input.@Output 来进行父子组件之间数据的传递. 如下: 父元素: <child-root parent_value="this is parent ...