package org.ithink.test; import java.util.ArrayList; import java.util.List; public class StringUtil { /** * 去掉给定字符串前和后的空格,返回干净的字符串 */ public static String removeSpaces(String args) { if (args != null) { args = args.trim(); while (args.startsWith(" ")) { args = args.substring(1, args.length()).trim(); } while (args.endsWith(" ")) { args = args.substring(0, args.length() - 1).trim(); } } else { args = ""; } return args; } /** * 转全角的函数 */ public static String toSBC(String input) { // 半角转全角: char[] c = input.toCharArray(); for (int i = 0; i < c.length; i++) { if (c[i] == 32) { c[i] = (char) 12288; continue; } if (c[i] < 127) { c[i] = (char) (c[i] + 65248); } } return new String(c); } /** * 转半角的函数 */ public static String toDBC(String input) { char[] c = input.toCharArray(); for (int i = 0; i < c.length; i++) { if (c[i] == 12288) { c[i] = (char) 32; continue; } if (c[i] > 65280 && c[i] < 65375) { c[i] = (char) (c[i] - 65248); } } return new String(c); } /** * 为每添加一个元素前面增加指定的分隔 除第一个元素之外 */ public static StringBuffer appendElement(StringBuffer strB, String appStr, String compart) { // 当出入参数为NULL时 if (strB == null) { return new StringBuffer(appStr); } // 当没有元素时直接添加追加元素 否则先添加分隔符 if (strB.length() == 0) { strB.append(appStr); } else { strB.append(compart); strB.append(appStr); } return strB; } /** * 移除元素 */ public static StringBuffer moveElement(StringBuffer strB, String moveStr, String compart) { // 当出入参数为NULL时 if (strB == null) { return strB; } StringBuffer newStrB = new StringBuffer(); String[] strArray = strB.toString().split(compart); for (int i = 0; i < strArray.length; i++) { if (moveStr.equals(strArray[i])) { continue; } if (i == 0) { newStrB.append(strArray[i]); } else { newStrB.append(compart); newStrB.append(strArray[i]); } } return newStrB; } /** * 移除第一个匹配的元素 */ public static StringBuffer moveFirstElement(StringBuffer strB, String moveStr, String compart) { // 当出入参数为NULL时 if (strB == null) { return strB; } StringBuffer newStrB = new StringBuffer(); String[] strArray = strB.toString().split(compart); boolean tag = false; for (int i = 0; i < strArray.length; i++) { if (moveStr.equals(strArray[i]) == true && tag == false) { tag = true; continue; } if (i == 0) { newStrB.append(strArray[i]); } else { newStrB.append(compart); newStrB.append(strArray[i]); } } return newStrB; } /** * 从给定字符中 返回所含的中文字符 并按每组以以字符串数组的形式返回 */ public static String[] getChinese(String src) { List list = new ArrayList(); byte[] srcByte = src.getBytes(); int srcLength = srcByte.length; int begin = -1; int end = -1; for (int i = 0; i < srcLength; i++) { // 设置中文的开始位 if (srcByte[i] < 0 && begin == -1) { begin = i; } // 设置中文的结束位 if (srcByte[i] > 0 && begin != -1 && end == -1) { end = i; } // 如果已经找到中文的开始 但直到最后也没找到中文的结束,则将字符的结束位当成中文的截止位 if (begin != -1 && i == srcLength - 1) { end = i; } // 将中文提取出来 if (begin != -1 && end != -1) { int tempLength = end - begin + 1; if (tempLength % 2 != 0) { tempLength = tempLength - 1; } byte[] tempByte = new byte[tempLength]; System.arraycopy(srcByte, begin, tempByte, 0, tempLength); list.add(new String(tempByte)); begin = -1; end = -1; } } // 将中文以数组输出 int size = list.size(); String[] chineseArray = new String[size]; for (int i = 0; i < size; i++) { chineseArray[i] = list.get(i).toString(); } return chineseArray; } public static String zeroleft(String str, Integer len) { if (str == null || str.trim().length() < 1) str = "1"; while (str.length() < len) { str = "0" + str; } return str; } /** * 前(填充位置,适用于本类方法fill) */ public static final int FRONT = 10; /** * 后(填充位置,适用于本类方法fill) */ public static final int BACK = 30; /** * 填充字符串至指定长度 * @param arg0 原始字符串 * @param arg1 填充后长度 * @param arg2 填充位置(前或后,参照本类常量) * @param arg3 填充字符 * @return 填充后字符串 */ public static String fill(String arg0, int arg1, int arg2, String arg3) throws Exception{ //验证数据 if(arg1 < 1){ throw new Exception("填充长度不能小于1!"); } if(arg2 != FRONT && arg2 != BACK){ throw new Exception("该填充位置不存在!"); } if(arg3 == null || "".equals(arg3)){ throw new Exception("填充字符不能为空!"); } if(arg3.length() != 1){ throw new Exception("填充字符长度不得大于1!"); } /* * 填充 * 1、若待填充字符串为NULL,则返回长度为arg1,且各字符为arg3的字符串 * 2、若代填充字符串长度大于等于填充长度,则返回待填充字符串本身 */ String strResult = arg0 == null ? "" : arg0; strResult = strResult.trim(); if(strResult.length() >= arg1){ return strResult; } //填充长度 int lenFill = arg1 - strResult.length(); if(arg2 == 10){ //前部填充 for(int i = 0 ; i < lenFill ; i++){ strResult = arg3 + strResult; } }else{ //后部填充 for(int i = 0 ; i < lenFill ; i++){ strResult += arg3; } } return strResult; } public static void main(String[] args) { StringBuffer str = new StringBuffer("a,c,d,c"); str = StringUtil.moveFirstElement(str, "c", ","); System.out.println(str.toString()); } }
相关推荐
StringUtil工具类java学习的好东西!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!...
首先,`StringUtil.cpp`和`StringUtil.h`是C++中的源代码文件和头文件,它们定义了类`StringUtil`及其成员函数。在C++中,头文件通常用于声明类、函数、常量等,而源代码文件则包含了这些声明的实现细节。在这个案例...
`StringUtil`是一个常见的Java工具类,它包含了大量用于处理字符串的方法,可以极大地简化字符串操作,提高代码的可读性和效率。在Java开发中,我们经常会遇到对字符串进行各种操作的需求,如检查空值、分割、连接、...
通过分析`stringUtil.c`源代码和`stringUtil.h`头文件,我们可以了解一些关键知识点。 1. **自定义字符串数据结构**:在C语言中,字符串通常以字符数组的形式存在。在`stringUtil.h`中,可能定义了一个名为`String`...
StringUtil.java 2100+行代码 内容丰富
自己整理的StringUtil ,字符串处理工具类,很全面的方法,对象之间的数据转换
《AS3-StringUtil:深入解析字符串处理工具类》 在ActionScript 3(AS3)中,处理字符串是一项常见的任务,而`StringUtil`类则是一个非常实用的工具,它提供了许多方便的方法来优化和简化字符串操作。这篇内容将...
StringUtil工具类 是对String 对象封装操作
这里提到的"ArrayUtil+DateUtil+FileUtil+ReguUtil+StringUtil"是五个这样的工具包,它们分别针对数组操作、日期处理、文件操作、正则表达式匹配和字符串操作提供了一系列便利的方法。 1. **ArrayUtil**: - **...