`

Java字符串通用类

    博客分类:
  • Java
阅读更多
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class StringU {

    /**
     * 私有构造方法,防止类的实例化,因为工具类不需要实例化。
     */
    private StringU() {
    }

    /**
     * 判断有几个中文字符
     *
     * @param str
     * @return
     */
    public static int getChineseCount(String str) {
        String temp = null;
        Pattern p = Pattern.compile("[\u4E00-\u9FA5]+");
        Matcher m = p.matcher(str);
        int count = 0;
        while (m.find()) {
            temp = m.group(0);
            count += temp.length();
            System.out.println(temp + ":" + temp.length());
        }
        return count;
    }

    /**
     * 设置填充字符
     *
     * @param str
     *            原字符
     * @param fill
     *            填充字符
     * @param digit
     *            填充后总位数
     * @param startOrend
     *            填充在原字符首尾(1,-1)
     * @return
     * @throws Exception
     */
    public static String fChar(String str, String fill, int digit,
            int startOrend) throws Exception {
        if (!(str.length() > digit)) {
            // 处理中文问题
            // int slength=new String(str.getBytes(),"ISO-8859-1").length();
            int slength = str.length();
            int i = digit - slength;
            StringBuffer fillStr = new StringBuffer();
            for (int x = 0; x < i; x++)
                fillStr.append(fill);
            if (startOrend >= 0)
                return fillStr + str;
            else
                return str + fillStr;
        } else {
            throw new Exception("fillCharacter Exception");
        }
    }

    /**
     * 得到字符串的字节长度
     *
     * @param source
     *            字符串
     * @return 字符串的字节长度
     */
    public static int getByteLength(String source) {
        int len = 0;
        for (int i = 0; i < source.length(); i++) {
            char c = source.charAt(i);
            int highByte = c >>> 8;
            len += highByte == 0 ? 1 : 2;
        }
        return len;
    }

    /**
     * 去除右边多余的空格。
     *
     * @param value
     *            待去右边空格的字符串
     * @return 去右边空格的字符串
     */
    public static String trimRight(String value) {
        String result = value;
        if (result == null)
            return result;
        char ch[] = result.toCharArray();
        int endIndex = -1;
        for (int i = ch.length - 1; i > -1; i--) {
            if (Character.isWhitespace(ch[i])) {
                endIndex = i;
            } else {
                break;
            }
        }
        if (endIndex != -1) {
            result = result.substring(0, endIndex);
        }
        return result;
    }

    /**
     * 去除左边多余的空格。
     *
     * @param value
     *            待去左边空格的字符串
     * @return 去掉左边空格后的字符串
     */
    public static String trimLeft(String value) {
        String result = value;
        if (result == null)
            return result;
        char ch[] = result.toCharArray();
        int index = -1;
        for (int i = 0; i < ch.length; i++) {
            if (Character.isWhitespace(ch[i])) {
                index = i;
            } else {
                break;
            }
        }
        if (index != -1) {
            result = result.substring(index + 1);
        }
        return result;
    }

    /**
     * 将字符串数组使用指定的分隔符合并成一个字符串。
     *
     * @param array
     *            字符串数组
     * @param delim
     *            分隔符,为null的时候使用""作为分隔符(即没有分隔符)
     * @return 合并后的字符串
     */
    public static String combineStringArray(String[] array, String delim) {
        int length = array.length - 1;
        if (delim == null) {
            delim = "";
        }
        StringBuffer result = new StringBuffer(length * 8);
        for (int i = 0; i < length; i++) {
            result.append(array[i]);
            result.append(delim);
        }
        result.append(array[length]);
        return result.toString();
    }

    /**
     * 字符串数组中是否包含指定的字符串。
     *
     * @param strings
     *            字符串数组
     * @param string
     *            字符串
     * @param caseSensitive
     *            是否大小写敏感
     * @return 包含时返回true,否则返回false
     */
    public static boolean contains(String[] strings, String string,
            boolean caseSensitive) {
        for (int i = 0; i < strings.length; i++) {
            if (caseSensitive == true) {
                if (strings[i].equals(string)) {
                    return true;
                }
            } else {
                if (strings[i].equalsIgnoreCase(string)) {
                    return true;
                }
            }
        }
        return false;
    }

    public static void main(String[] args) throws Exception {
        String input = "中文答复fd何as最的天dafds工作df高fdsdfs";
        System.out.println(StringU.getChineseCount(input));

        String fstr = "123哈哈";
        System.out.println(StringU.fChar("", "中", 10, 1));
        System.out.println(StringU.fChar(fstr, "中", 10, 1).length());

        System.out.println(StringU.getByteLength(fstr));
    }
}

 

分享到:
评论

相关推荐

    java通用字符串连接

    `PowerJoin.java`文件可能包含一个名为`PowerJoin`的类,该类提供了一个静态方法,用于执行这个通用的字符串连接操作。这个方法可能会接受两个参数:一个集合对象(可以是List、Set、Map或其他集合类型),以及一个...

    json工具类,java日期转换,字符串转换等各种工具类

    在Java编程中,工具类(Util Classes)是程序员日常工作中不可或缺的部分,它们提供了一系列静态方法,用于执行常见的任务,如JSON解析、日期处理、字符串操作等。以下是对标题和描述中涉及的知识点的详细说明: 1....

    java 字符串对齐调整器

    在Java编程语言中,字符串对齐调整是一项常见的需求,特别是在数据展示、报表生成或格式化输出时。字符串对齐使得信息更加清晰易读,能够增强代码的可读性和美观性。本节将深入探讨如何在Java中实现字符串的对齐调整...

    Java IO操作和将字符串解析为数值数组

    此外,`源码`标签提示我们关注实现的细节,而`工具`标签可能意味着这些代码可以作为处理输入输出和字符串解析的通用工具函数。在实际项目中,这样的工具类可以帮助提高代码的可重用性和模块化。 总之,理解Java的IO...

    Java_格式化字符串 汇总

    本文将深入探讨Java中`String`类的`format()`方法,及其如何用于创建格式化的字符串,同时涵盖常见的转换符和标志,以帮助开发者更好地理解和应用这一功能。 ### 常规类型的格式化 #### `String.format()`方法详解...

    json字符串转table字符串

    例如,`json-lib`库提供了`JsonUtil`类,可以将JSON字符串转换为Java集合对象,如List或Map。 2. **转换数据结构**:将解析后的JSON对象或数组转化为适合表格展示的二维数据结构,比如二维数组或List嵌套List。 3....

    统计字符串中英文标点数量并截取.zip

    这个压缩包内包含的可能是Java代码示例(如csdn-demo),用于批量处理字符串,统计其中的中英文标点符号的数量,并根据指定的字符编码(GBK或UTF)来计算字符串的总长度。如果字符串的总长度超过预设的最大长度,...

    Java字符串取GBKUNICODE编码和相互转换.doc

    ### Java字符串取GBK与UNICODE编码及相互转换详解 #### 一、引言 在处理中文等非ASCII字符时,经常需要对字符串进行编码转换,尤其是GBK和Unicode之间的转换。本文将详细介绍如何在Java中实现字符串从GBK到Unicode...

    Java 中将 UUID 存储为 Base64 字符串

    ### Java 中将 UUID 存储为 Base64 字符串 #### 一、引言 在软件开发领域,尤其是在处理大规模分布式系统时,UUID(通用唯一标识符)因其全局唯一性而广泛应用于各种场景,例如作为数据库记录的主键、会话标识等。...

    Java实现产生随机字符串主键的UUID工具类

    Java实现产生随机字符串主键的UUID工具类 Java实现产生随机字符串主键的UUID工具类是指使用Java语言来生成唯一的标识符,用于表示资源、记录或对象的身份。 UUID( Universally Unique Identifier,通用唯一标识符...

    Java字符串 日期 数字格式化输出.doc

    Java编程语言中,字符串、日期和数字的格式化输出是一个重要的概念,特别是在处理用户界面输出或者数据记录时。虽然在C语言中可以使用`printf`函数进行格式化输出,但Java的标准输出`System.out.println()`并没有...

    JavaUtils,通用的Java工具类,主要包括基础工具类(时间、正则表达式、字符串、随机数等等)_JavaUtils.zip

    JavaUtils,通用的Java工具类,主要包括基础工具类(时间、正则表达式、字符串、随机数等等)_JavaUtils

    JAVA字符串编解码问题[定义].pdf

    Java字符串的编解码涉及到字符集(Charset)的概念,字符集是用于表示文本的一套符号及其对应的数值。在Java中,所有的字符串都是基于Unicode编码的,Unicode是一种包含几乎世界上所有字符的标准编码,它保证了不同...

    java与delphi 通用 DES加解密(源代码)

    在Java中,我们可以使用`javax.crypto`包提供的`Cipher`类来实现DES操作。以下是一个简单的示例: ```java import javax.crypto.Cipher; import javax.crypto.spec.DESKeySpec; import java.security.SecureRandom;...

    时间与字符串工具类

    在Java编程中,工具类(Util classes)是用于提供各种通用功能的静态方法集合,它们不维护状态,方便在整个项目中复用。本话题聚焦于两个特定的工具类:`StringUtil`和`DatetimeUtil`,它们分别处理字符串操作和日期...

    字符串操作大全

    在IT领域,字符串操作是编程中的基础且至关重要的部分,无论你使用哪种编程语言,如Python、Java、C++或JavaScript等。字符串是由字符组成的序列,可以用来存储文本信息。本资源“字符串操作大全”显然提供了关于...

    Java字符串转成二进制码的方法

    Java 字符串转换二进制码方法详解 Java 字符串转换二进制码方法是 Java 语言中的一种常见操作,通过本文,我们将详细介绍 Java 字符串转换二进制码的方法,并提供相应的代码实现。 一、字符串转换二进制码 在 ...

    字符串转换为Ascii码

    在Java中,字符串是不可变的对象,通常使用`String`类来表示。字符串可以通过多种方式进行操作,例如获取长度、查找子串、替换等。本例中涉及到的主要操作有: 1. **将字符串转换为字符数组**:`toCharArray()`方法...

    java 判断字符串是否是中文

    在Java编程语言中,判断一个字符串是否全由中文字符组成是一项常见的任务,特别是在处理文本数据时。这可能涉及到汉字的校验、分词或者字符编码转换等场景。下面我们将详细探讨如何实现这个功能。 首先,我们需要...

    将某表示文件路径的字符串的文件名分离出文件路径

    Java 提供了多种内置的方法来处理字符串,其中 `String` 类提供了丰富的 API 来支持各种字符串操作需求。这里重点介绍几个方法: #### 2.1 `lastIndexOf(String str)` - **作用**:返回指定子字符串最后一次出现的...

Global site tag (gtag.js) - Google Analytics