可做成CommonFunctions的一些常用的字符串共通处理归纳一:字符串处理相关
/** * nullToBlank() : 参数为null的场合,转化成空 * * @param pValue : 字符串型参数 * @return : null -> "" */ public static String nullToBlank(String pValue) { if(pValue == null || pValue.toLowerCase().equals("null")) { return ""; } else { return pValue; } }
/** * nullToZero() : 参数为null的场合,转化成0 * * @param pValue : 参数 * @return : null -> 0 */ public static String nullToZero(String pValue) { if (pValue == null || pValue.toLowerCase().equals("null") || pValue.equals("")) { return "0"; } else { return pValue; } }
/** * splitToArray() : 将字符串按目标字符切分成数组后返回 * * @param pTargetStr : 字符串 * @param pSplitFlg : 切分字符 * @return : 数组 */ public static String[] splitToArray(String pTargetStr, String pSplitFlg) { int index = -1; ArrayList<String> strArray = new ArrayList<String>(); while ((index = pTargetStr.indexOf(pSplitFlg)) != -1) { strArray.add(pTargetStr.substring(0, index)); pTargetStr = pTargetStr.substring(index + pSplitFlg.length()); } strArray.add(pTargetStr); String[] retStr = (String[]) strArray.toArray(new String[strArray.size()]); return retStr; }
/** * splitToVector() : 将字符串按目标字符切分成数组后返回 * * @param pTargetStr : 字符串 * @param pSplitFlg : 切分字符 * @return : 数组 */ public static Vector<String> splitToVector(String pTargetStr, String pSplitFlg) { Vector<String> retVal = null; String[] arrayText = splitToArray(pTargetStr, pSplitFlg); if (arrayText.length > 0) { retVal = new Vector<String>(arrayText.length); for (int i = 0; i < arrayText.length; i++) { retVal.addElement(arrayText[i]); } } return retVal; }
/** * joinToString() : 将目标数组按指定字符切分,合成字符串后返回 * * @param pVecOriginal : 数组 * @param pSplitFlg : 切分字符 * @return : 字符串 */ public static String joinToString(Vector<String> pVecOriginal, String pSplitFlg) { String retVal = ""; for (int i = 0; i < pVecOriginal.size(); i++) { retVal = retVal + pSplitFlg + pVecOriginal.elementAt(i).toString(); } if (!(retVal.equals(""))) { retVal = retVal.substring(1); } return nullToBlank(retVal); }
/** * paddingZeroL() : 在目标字符串的前面补齐0后返回 * * @param pOriginalData : 字符串 * @param paddingLength : 补齐后字符串长度 * @return : 补齐后字符串 */ public static String paddingZeroL(String pOriginalData, long pAllLength) { String retVal = pOriginalData; byte[] byteOfString = retVal.getBytes(); long cnt = pAllLength - byteOfString.length; for (int i = 0; i < cnt; i++) { retVal = "0" + retVal; } return nullToBlank(retVal); }
/** * paddingZeroR() : 在目标字符串的后面补齐0后返回 * * @param pOriginalData : 字符串 * @param paddingLength : 补齐后字符串长度 * @return : 补齐后字符串 */ public static String paddingZeroR(String pOriginalData, long pAllLength) { String retVal = pOriginalData; byte[] byteOfString = retVal.getBytes(); long cnt = pAllLength - byteOfString.length; for (int i = 0; i < cnt; i++) { retVal = retVal + "0"; } return nullToBlank(retVal); }
public static final String PRE = "PRE"; public static final String END = "END"; /** * addStrPreOrEnd() : 在目标字符串的前面/后面补齐后返回 * * @param pTargetStr : 目标字符串 * @param pAddFlg : 前面/后面 * @param pLength : 需要补齐的位数 * @param pAddStr : 需要补齐的字符串 * @return : 补齐后字符串 */ public static String addStrPreOrEnd(String pTargetStr, String pAddFlg, int pLength, String pAddStr) { String strAppend = ""; for (int i = 0; i < pLength; i++) { strAppend += pAddStr; } if (pAddFlg.equals(PRE)) { return strAppend + pTargetStr; } else if (pAddFlg.equals(END)) { return pTargetStr + strAppend; } else { return pTargetStr; } }
/** * cutHeadderZero() : 将目标字符串的前面的0去掉后返回 * * @param pTargetStr : 目标字符串 * @return : 去0后的字符串 */ public static String cutHeadderZero(String pTargetStr) { String retVal = pTargetStr; String temp = pTargetStr; while (retVal.length() > 0) { if (retVal.substring(0, 1).equals("0")) { retVal = retVal.substring(1); } if (retVal.equals(temp)) { break; } temp = retVal; } return retVal; }
/** * getByteLengthByEncoding() : 按字符编码来计算字符串长度 * * @param pTargetStr : 字符串 * @param pEncoding : 编码(MS932/...) * @return : 字符串长度 */ public static int getByteLengthByEncoding(String pTargetStr, String pEncoding) { try { if (pTargetStr == null) { return 0; } byte[] b = pTargetStr.getBytes(pEncoding); return b.length; } catch (java.io.UnsupportedEncodingException e) { return 0; } }
/** * getByteLengthByCode() : 按Unicode/Shift_JIS来计算字符串长度 * * @param pTargetStr : 字符串 * @return : 字符串长度 */ public static int getByteLengthByCode(String pTargetStr) { int lengthCnt = 0; for (int i = 0; i < pTargetStr.length(); i++) { int c = pTargetStr.charAt(i); // Shift_JIS: 0x0 ~ 0x80, 0xa0 , 0xa1 ~ 0xdf , 0xfd ~ 0xff // Unicode : 0x0 ~ 0x80, 0xf8f0, 0xff61 ~ 0xff9f, 0xf8f1 ~ 0xf8f3 if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) { lengthCnt += 1; } else { lengthCnt += 2; } } return lengthCnt; }
/** * getKeepLimitStr() : 当字符串超出指定长度时,以省略号形式显示 * * @param pTargetStr : 字符串 * @param pLength : 指定长度 * @return : 字符串 */ public static String getKeepLimitStr(String pTargetStr, int pLength) { int orgLength = getByteLengthByEncoding(pTargetStr, "MS932"); if (orgLength > pLength) { pLength -= 2; int index = pLength / 2; String retVal = pTargetStr.substring(0, index); while (getByteLengthByEncoding(retVal, "MS932") < pLength) { retVal = retVal + pTargetStr.substring(index, index + 1); index++; } if (getByteLengthByEncoding(retVal, "MS932") > pLength) { retVal = retVal.substring(0, retVal.length() - 1); } return retVal + "…"; } return pTargetStr; }
相关推荐
下面给出了一段示例代码,演示了如何在qlang中使用Go的字符串处理功能: ```go package main import ( "fmt" "log" "strings" "qlang.io/qlang.v2/qlang" "qlang.io/qlang/builtins" ) var strings_Exports...
该接口定义了一个 `accept(File dir, String name)` 方法,接受一个 `File` 对象和一个字符串参数,用于判断是否应该包含该文件名。通常情况下,该接口会被实现为匿名内部类。 ### 3. 文件操作实例 #### 使用匿名...
根据提供的文件信息,我们可以归纳出一系列关于SQL的基础学习知识点,主要涵盖了SQL语言的基本概念、查询语句的应用、数据处理函数的使用以及表和视图的操作等方面。以下是对这些知识点的详细解析: ### 一、SQL...
- 由于 `new String("abc")` 创建的对象是在堆内存中,而字符串常量 `"abc"` 是在字符串常量池中,两者不相等。 2. **s2 == s3** 为 `true`。 - 假设 `s2` 为 `new String("abc").intern()` 的结果,`s3` 为 `"abc...
- **字符串:** Java中的字符串是不可变的对象,使用`String`类来表示。字符串可以通过各种内置方法进行操作,如拼接、分割、替换等。 - **数组:** 数组是一种基本的数据结构,用于存储固定大小的同类型元素集合...
String类提供了丰富的字符串处理方法,如长度获取、子串提取、拼接等。 - **数组** - 数组是一种将相同类型的元素按照一定顺序排列的数据结构。Java中的数组可以通过下标访问元素,并且提供了一些内置的方法来操作...
- **字符串**:Java中字符串是不可变的对象,通过`String`类来表示。字符串操作是Java程序中常见的需求之一。 - **数组**:数组是用来存储固定大小的同类型元素的集合。数组在内存中连续存储,可以通过下标访问元素...
字符串的创建、拼接、分割等操作可以通过`String`类的方法实现。 - **数组:** - 数组是用于存储同类型元素的数据结构。Java中的数组可以通过下标访问元素,支持一维数组、多维数组。 **1.2 Java的面向对象特性**...
- **String类**:不可变的字符串类,提供了一系列处理字符串的方法,如concat、substring、indexOf等。 - **StringBuilder/StringBuffer类**:可变的字符串类,适合在需要频繁修改字符串时使用。 **1.1.4 数组** -...
- **字符串**:用于处理文本数据,Java中字符串是不可变的,通过`String`类提供丰富的操作方法。 - **数组**:用于存储同类型元素的集合,支持索引访问,是实现多数数据结构的基础。 **1.2 Java的面向对象特性** -...
- `StringBuilder` 和 `StringBuffer` 类提供可变的字符串对象。 - 常用方法:`length()`、`charAt(int index)`、`substring(int beginIndex, int endIndex)` 等。 - **1.1.4 数组** - **一维数组**:声明、初始...
- `StringBuilder` 和 `StringBuffer` 可用于构建可变字符串。 - **数组** - 定义、初始化、访问元素的方法。 - 数组作为一种基本的数据结构,在程序设计中非常常见。 **1.2 Java的面向对象特性** - **类与...
- **String类**:不可变字符串。 - **StringBuilder/StringBuffer**:可变字符串。 - **1.1.4 数组** - **声明与初始化**:如 `int[] arr = new int[5];`。 - **访问与修改**:通过索引进行。 - **多维数组**...