Java电商判断的5种情况:
【1】、java判断字符串是否为空
【2】、java-正则表达式判断手机号
【3】、(3.1)JAVA正则表达式判断 只能包含汉字、英文、“_”和数字
【4】、判断字符长度&修改昵称:支持2-8个字符
【5】、JAVA中去掉空格
//------------------------------------------------------------------------
【1】、java判断字符串是否为空的方法总结
以下是Java 判断字符串是否为空的四种方法:
方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低:
if(s == null ||"".equals(s));
方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法:
if(s == null || s.length() <= 0);
方法三: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法二.
if(s == null || s.isEmpty());
方法四: 这是一种比较直观,简便的方法,而且效率也非常的高,与方法二、三的效率差不多:
if (s == null || s == "");
注意:s == null 是有必要存在的.
如果 String 类型为null, 而去进行 equals(String) 或 length() 等操作会抛出java.lang.NullPointerException.
并且s==null 的顺序必须出现在前面,不然同样会抛出java.lang.NullPointerException.
如下Java代码:
String str = null;
if(str.equals("") || str= == null){//会抛出异常
System.out.println("success");
}
// "".equals(str);后置确保不会遇null报错。
【2】、java-正则表达式判断手机号
移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
联通:130、131、132、152、155、156、185、186
电信:133、153、180、189、(1349卫通)
那么现在就可以正则匹配测试了,
[java]view plaincopy
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
publicclass ClassPathResource {
publicstaticboolean isMobileNO(String mobiles){
Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\D])|(18[0,5-9]))\d{8}$");
Matcher m = p.matcher(mobiles);
System.out.println(m.matches()+"---");
return m.matches();
}
publicstaticvoid main(String[] args) throws IOException {
System.out.println(ClassPathResource.isMobileNO("12016155153"));
}
}
第二种方法:
[java]view plaincopy
import java.util.regex.Matcher;
import java.util.regex.Pattern;
String value="手机号";
String regExp = "^[1]([3][0-9]{1}|59|58|88|89)[0-9]{8}$";
Pattern p = Pattern.compile(regExp);
Matcher m = p.matcher(value);
return m.find();//boolean
【3】、(3.1)JAVA正则表达式判断 只能包含汉字、英文、“_”和数字 ,正则该怎么写呢?
String pattern = "[u4e00-u9fa5\w]+";
其中:u4e00-u9fa5 代表中文,\w代表英文、数字和“_",中括号代表其中的任意字符,最后的加号代表至少出现一次。
(3.2)java用正则表达式判断字符串中是否仅包含英文字母、数字和汉字
/*判断字符串中是否仅包含字母数字和汉字
*各种字符的unicode编码的范围:
* 汉字:[0x4e00,0x9fa5](或十进制[19968,40869])
* 数字:[0x30,0x39](或十进制[48, 57])
*小写字母:[0x61,0x7a](或十进制[97, 122])
* 大写字母:[0x41,0x5a](或十进制[65, 90])
*/
public static boolean isLetterDigitOrChinese(String str) {
String regex = "^[a-z0-9A-Zu4e00-u9fa5]+$";
return str.matches(regex);
}
【4】、判断字符长度&修改昵称:支持2-8个字符。只支持汉字、字母。提示语:昵称格式不正确
if (nickname.length() < 2 || nickname.length() > 8) {
return ResultUtils.returnError("昵称支持2-8个字符");
}
String regEx = "[ _`~!@#$%^&*()+=|{}':;',\[\].·<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|
|
| ";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(nickname);
boolean find = m.find();
if(find){
return ResultUtils.returnError("昵称格式不正确");
}
【5】、JAVA中去掉空格
JAVA中去掉空格
1. String.trim()
trim()是去掉首尾空格
2.str.replace(" ", ""); 去掉所有空格,包括首尾、中间
String str = " hell o ";
String str2 = str.replaceAll(" ", "");
System.out.println(str2);
3.或者replaceAll(" +",""); 去掉所有空格
4.str = .replaceAll("\s*", "");
可以替换大部分空白字符, 不限于空格
s 可以匹配空格、制表符、换页符等空白字符的其中任意一个
5.或者下面的代码也可以去掉所有空格,包括首尾、中间
public String remove(String resource,char ch)
{
StringBuffer buffer=new StringBuffer();
int position=0;
char currentChar;
while(position<resource.length())
{
currentChar=resource.charAt(position++);
if(currentChar!=ch) buffer.append(currentChar); } return buffer.toString();
}
-------------------------------Test-----------------------------------------------------
package practisedemo;
public class Demo{
public static String remove(String resource,char ch)
{
StringBuffer buffer=new StringBuffer();
int position=0;
char currentChar;
while(position<resource.length())
{
currentChar=resource.charAt(position++);
//如果当前字符不是要去除的字符,则将当前字符加入到StringBuffer中
if(currentChar!=ch) buffer.append(currentChar);
}
return buffer.toString();
}
public static void main(String args[]) {
String str= "afdsfdf 了 2012 0407 Alamps 老师";
char c=' ';
System.out.println("结果为:"+Demo.remove(str, c));
}
}
//============================================================================
史上最全:手机号段分配那点事
https://www.ithome.com/html/discovery/252157.htm
黑马程序员_反射枚举与正则表达式总结
http://634157146.iteye.com/blog/2092983
Java正则表达式的语法与示例
http://www.19jm.com/a/20170504/14201.html
Java正则表达式的语法与示例(2)
http://www.19jm.com/a/20170504/14201_2.html