Java电商判断的5种情况

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-Z\u4e00-\u9fa5]+$";
      return str.matches(regex);
     }
【4】、判断字符长度&修改昵称:支持2-8个字符。只支持汉字、字母。提示语:昵称格式不正确
        if (nickname.length() < 2 || nickname.length() > 8) {
            return ResultUtils.returnError("昵称支持2-8个字符");
        }
    String regEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].·<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r|\t";
        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

posted @ 2017-06-29 10:15  青春不再见  阅读(518)  评论(0编辑  收藏  举报