工具类描述:用户字符串操作,这里面包括字符串的decodeencodesubstract等等操作

package cn.hgnulb;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.regex.Matcher;
import java.util.regex.Pattern; /**
* 工具类描述:用户字符串操作,这里面包括字符串的decode、encode、substract等等操作
*/
public class StringUtil { /**
* 把前台传过来的含中文的url字符串转换成标准中文,比如“%E5%8C%97%E4%BA%AC”转换成“北京”
*
* @param url
* url字符串
* @return string
*/
public static String decodeUrl(String url) {
if (url == null)
return "";
String str = "";
try {
str = URLDecoder.decode(url, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return str;
} /**
* 把比如“北京”转换成“%E5%8C%97%E4%BA%AC”
*
* @param url
* url字符串
* @return string
*/
public static String encodeUrl(String url) {
if (url == null)
return "";
String str = "";
try {
str = URLEncoder.encode(url, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return str;
} /**
* 取字符串除最后一位的子串,比如 "aaa,bbb,"返回"aaa,bbb",一般用在多个字段进行拼接,要去除最后一位
*
* @param str
* 字符串
* @return string
*/
public static String subTract(String str) {
if (str.length() == 0)
return "";
else
return str.substring(0, str.length() - 1);
} /**
* 判断字符串是null或"",null或""都返回true
*
* @param str
* 字符串
* @return boolean
*/
public static boolean isNullOrEmpty(String str) {
if (str == null || "".equals(str))
return true;
else
return false;
} /**
* 判断字符串不是null且"",不是null且""时返回true,否则返回false
*
* @param str
* 字符串
* @return boolean
*/
public static boolean isNotNullOrEmpty(String str) {
if (str != null && !"".equals(str))
return true;
else
return false;
} /**
* 过滤表情,在移动开发中,有些字符是表情等特殊字符,数据库不识别,需要过滤掉, 替换为*
*
* @param source
* @return string
*/
public static String filterEmoji(String source) {
if (StringUtil.isNotNullOrEmpty(source)) {
return source.replaceAll("[\\ud800\\udc00-\\udbff\\udfff\\ud800-\\udfff]", "*");
} else {
return source;
}
} /**
* 判断是否是手机号
*
* @param mobile
* @return boolean
*/
public static boolean isMobile(String mobile) {
Pattern p = Pattern.compile("^1[3-9]\\d{9}$");
Matcher m = p.matcher(mobile);
boolean b = m.matches();
return b;
} public static void main(String[] args) {
System.out.println("StringUtil.decodeUrl(\"%E5%8C%97%E4%BA%AC\"): " + StringUtil.decodeUrl("%E5%8C%97%E4%BA%AC"));
System.out.println("StringUtil.encodeUrl(\"北京\"): " + StringUtil.encodeUrl("北京"));
System.out.println("StringUtil.subTract(\"aaa,bbb,\"): " + StringUtil.subTract("aaa,bbb,"));
System.out.println("StringUtil.isNullOrEmpty(\"\"): " + StringUtil.isNullOrEmpty(""));
System.out.println("StringUtil.isNotNullOrEmpty(\"\"): " + StringUtil.isNotNullOrEmpty(""));
System.out.println("StringUtil.filterEmoji(\"

用户字符串操作,这里面包括字符串的decode、encode、substract等等操作的更多相关文章

  1. 实现C语言字符串操作的库函数 包括基本的字符串复制 字符串长度 字符串比较等多种函数(C代码)

    头文件 "mystring.h" #ifndef _MYSTR_H #define _MYSTR_H #include <stdio.h> #include <s ...

  2. javascript中字符串常用操作总结、JS字符串操作大全

    字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用操作做个整理,一者加深印象,二者方便今后温 ...

  3. js--javascript中字符串常用操作总结、JS字符串操作大全

    字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用操作做个整理,一者加深印象,二者方便今后温 ...

  4. Java字符串操作及与C#字符串操作的不同

    每种语言都会有字符串的操作,因为字符串是我们平常开发使用频率最高的一种类型.今天我们来聊一下Java的字符串操作及在某些具体方法中与C#的不同,对于需要熟悉多种语言的人来说,作为一种参考.进行诫勉 首 ...

  5. JAVA字符串格式化-String.format()的使用 【生成随机数补0操作】

    转: JAVA字符串格式化-String.format()的使用 常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的s ...

  6. 使用任意的输入流(InputStream)实例,包括字符串形式的文件路径或者 file:// 的 URL 形式的文件路径来配置

    mybatis – MyBatis 3 | 入门 http://www.mybatis.org/mybatis-3/zh/getting-started.html 从 XML 中构建 SqlSessi ...

  7. PHP操作redis之String(字符串)、List(列表)(一)

    Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key – value 缓存产品有以下三个特点: Redis支持数据的持久 ...

  8. 【微软100题】定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。

    package test; /** * 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部. 如把字符串abcdef左旋转2位得到字符串cdefab. 请实现字符串左旋转的函数. * ...

  9. glib简单记录包括字符串,主循环,回调函数和xml解析

    一.将最近用到的glib字符串功能整理了下直接用程序记录比较好看懂 #define MAX_LEN 100gchar * demo (char* msg, ...){    gchar * pcfgf ...

随机推荐

  1. Linux网络编程四、UDP,广播和组播

    一.UDP UDP:是一个支持无连接的传输协议,全称是用户数据包协议(User Datagram Protocol).UDP协议无需像TCP一样要建立连接后才能发送封装的IP数据报,也是因此UDP相较 ...

  2. 20165223《网络对抗技术》Exp 9 Web安全基础

    目录 -- Web安全基础 ★ 实验说明 实验目标 基础问答 实验准备 ★ 实验内容 SQL注入攻击 1. 命令注入(Command Injection) 2. 数字型注入(Numeric SQL I ...

  3. 上下文对象-请求对象-响应对象(ServletContext - response - request)

    目录 上下文对象-请求对象-响应对象 ServletContext response request 上下文对象-请求对象-响应对象 ServletContext 什么是ServletContext ...

  4. Java 面向对象(五)

    包装类 什么是包装类 在面向对象当中"一切皆对象".基本数据类型变量不是对象,比如 int a = 10; 当中就没有对象,所以就很矛盾.此时我们就可以对基本数据类型进行包装,把基 ...

  5. vim 操作命令大全(转)

    1. 关于Vim vim是我最喜欢的编辑器,也是Linux下第二强大的编辑器. 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效. 如果是初学vi,运行一下vimtu ...

  6. SpringBoot中的异常处理方式

    SpringBoot中有五种处理异常的方式: 一.自定义错误页面 SpringBoot默认的处理异常机制:SpringBoot默认的已经提供了一套处理异常的机制.一旦程序出现了异常SpringBoot ...

  7. php生成的html 顶部有一空行的解决办法

    php生成的html 顶部有一空行的解决办法,但是生成的编译文件,即1d7c7a527b6335cc7a623305ca940e1findex.tpl.php就没有空行 比较两个HTML源代码一模一样 ...

  8. 使用libxml2创建和解析xml文件

    毕业设计需要用到xml文件来组织和存放数据, 对于Linux环境下,有libxml2可供使用. 经过一段时间查询文档和网站, 基本掌握创建xml文档和解析xml的操作, 简单做一下记录. 创建xml ...

  9. word 2010中设置默认粘贴为 只保留文本粘贴【visio也适用于快捷键方式】

    VISIO也适用如下方式: 3. 当然也可以直接是 Ctrl + Alt + V打开选择性粘贴选项卡 来选择其中某项来粘贴也是可以的 转: word 2010中设置默认粘贴为 只保留文本粘贴 2012 ...

  10. react起步——从零开始编写react项目

    # index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> ...