java string对特殊符号的处理

package cn.com.nike.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* 对String进行操作
* @author soya.song
*2017.3.21
*/
public class UtilString {
private static final Logger log = LoggerFactory.getLogger(UtilString.class);
/**
* 去除空格,下划线,全部转小写
* 应用场景:将excel列名转换为对象属性名
* 对象属性名使命规则:列名去除空格,下划线,全部小写以后即为属性名,该处对象不采取驼峰命名规则,因动态取值,赋值,固需遵循该规则
* @param str
* @return
*/
public static String newString(String str){
return str.toLowerCase().replaceAll("\\s*", "").replaceAll("_", "");//全部小写,去除空格,去除下划线
}
/**
* 全部转小写
* @param str
* @return
*/
public static String allLowercase(String str){
return str.toLowerCase();
}
/**
* 去除空格
* @param str
* @return
*/
public static String RemoveBlankSpace(String str){
return str.replaceAll("\\s*", "");
}
/**
* 去除下划线
* @param str
* @return
*/
public static String RemoveUnderline(String str){
return str.replaceAll("_", "");
}
/**
* 去除斜杠
* @param str
* @return
*/
public static String RemoveSlash(String str){
return str.replaceAll("/", "");
}

/**
* 去除所有空格,所有特殊符号,首字母小写,这个方法把数字也去除了
* 应用场景:将excel列名改为java对象属性名
* 1 去除/ _ () 所有空格
* 2 首字母小写
* @param str
* @return
*/

public static String getNewString(String str){
log.info("UtilString.getNewString.转换前为。。。。。。。。。。"+str);
String newStr=toLowerCaseFirstOne (str.trim().replaceAll("_", "").replaceAll("/", "").replaceAll("\\(|\\)", "").replaceAll("\\s*", ""));
log.info("UtilString.getNewString.转换后为。。。。。。。。。。"+newStr);
return newStr;
}
//首字母转小写
public static String toLowerCaseFirstOne(String s){
if(Character.isLowerCase(s.charAt(0)))
return s;
else
return (new StringBuilder()).append(Character.toLowerCase(s.charAt(0))).append(s.substring(1)).toString();
}
// //首字母转大写
public String toUpperCaseFirstOne(String s){
if(Character.isUpperCase(s.charAt(0)))
return s;
else
return (new StringBuilder()).append(Character.toUpperCase(s.charAt(0))).append(s.substring(1)).toString();
}

/**
* 去除所有空格,所有特殊符号,首字母小写
* 该方法去除了一切特殊符号,包括数字
* @param str
* @return
*/
public static String getNewStringNoNum(String str){
log.info("UtilString.getNewString.转换前为。。。。。。。。。。"+str);
char[] chars = str.toCharArray();
StringBuffer buffer=new StringBuffer();
for(int i = 0; i < chars.length; i ++) {
if((chars[i] >= 19968 && chars[i] <= 40869) || (chars[i] >= 97 && chars[i] <= 122) || (chars[i] >= 65 && chars[i] <= 90)) {
// buffer.append(chars[i]);
if (chars[0] >= ‘A‘ && chars[0] <= ‘Z‘) {//当为字母时,则转换为小写
buffer.append(chars[i]);
}
}
}
System.out.print(toLowerCaseFirstOne(buffer.toString()));
log.info("UtilString.getNewString.转换后为。。。。。。。。。。"+toLowerCaseFirstOne(buffer.toString()));
return toLowerCaseFirstOne(buffer.toString());
}
}

时间: 2024-12-12 18:57:15

java string对特殊符号的处理的相关文章

Java String.split()特殊符号

1.一般情况 String str="SSSS*HHHH*EEEEE"; String[] strs=str.split("\\*"); for(String s:strs) System.out.println(s); SSSS HHHH EEEE 2.特殊情况 String str="SSSS\\HHHH\\EEEE";//不能为SSSS\HHHH\EEEE String[] strs=str.split("\\\\");

java基础知识回顾之---java String final类 容易混淆的java String常量池内存分析

/** *   栈(Stack) :存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放  在常量池中). 堆(heap):存放所有new出来的对象. *   静态存储:存放静态成员(static定义的). 常量池(constant pool):在堆中分配出来的一块存储区域,存放储显式的String常量和基本类型常量(float.int等).另外,可以存储不经常改变的东西 *                       p

JAVA String.format 方法使用介绍

1.对整数进行格式化:%[index$][标识][最小宽度]转换方式        我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解,就是最终该整数转化的字符串最少包含多少位数字.我们来看看剩下2个部分的含义吧: 标识: '-'    在最小宽度内左对齐,不可以与“用0填充”同时使用'#'    只适用于8进制和16进制,8进制时在结果前面增加一个0,16进制时在结果前面增加0x'+'    结果总是包括一个符号(一般情况下只适用

java byte转无符号int

import java.io.ByteArrayInputStream; public class Test{ public static void main(String[] args) { byte[] bytes = new byte[]{(byte)-42}; ByteArrayInputStream in = new ByteArrayInputStream(bytes); int result = in.read(); System.out.println("无符号数: \t&quo

[Java]String中“+”的实现原理及效率

在Java中String的操作很多时候都与连接符"+"有关,比如我们可以用String = int + "" 将一个int整数或是其他基本类型转为String类型,也可以用String = String + String 连接两个字符串.那么这些连接符具体是如何实现的呢?他们的效率又如何呢? 首先我们可以在API文档上查阅到: Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持.字符串串联是通过 StringBuil

Java String.replaceAll() 与后向引用(backreference)

问题 昨天看到一篇博文,文中谈到一道 Java 面试题: 给定一字符串,若该字符串中间包含 "*",则删除该 "*":若该字符串首字符或尾字符为 "*",则保留该 "*". 举几个例子(箭头左边为输入,箭头右边为输出): * --> * ** --> ** **** --> ** *ab**de** --> *abde* 我觉得应该用正则表达式来处理,但想不出正则表达式该怎么写. 第一种解答 该博文的回

Java String 综述(上篇)

摘要: Java 中的 String类 是我们日常开发中使用最为频繁的一个类,但要想真正掌握的这个类却不是一件容易的事情.笔者为了还原String类的真实全貌,先分为上.下两篇博文来综述Java中的String类.笔者从Java内存模型展开,结合 JDK 中 String类的源码进行深入分析,特别就 String类与享元模式,String常量池,String不可变性,String对象的创建方式,String与正则表达式,String与克隆,String.StringBuffer 和 String

java String 类 基础笔记

字符串是一个特殊的对象. 字符串一旦初始化就不可以被改变. String s = "abc";//存放于字符串常量池,产生1个对象 String s1=new String("abc");//堆内存中new创建了一个String对象,产生2个对象 String类中的equals比较字符串中的内容. 常用方法: 一:获取 1.获取字符串中字符的个数(长度):length();方法. 2.根据位置获取字符:charAt(int index); 3.根据字符获取在字符串中

Java String字符串/==和equals区别,str。toCharAt(),getBytes,indexOf过滤存在字符,trim()/String与StringBuffer多线程安全/StringBuilder单线程—— 14.0

课程概要 String 字符串 String字符串常用方法 StringBuffer StringBuilder String字符串: 1.实例化String对象 直接赋值  String str="Hello";  推荐这种 使用关键字new  String str1=new String("Hello"); 在内存中开辟2个空间 如图: 源代码 StringDemo01.java 2.String内容的比较 String str="Hello"