zoukankan      html  css  js  c++  java
  • 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-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

  • 相关阅读:
    2-SAT 问题及图论解法
    割点、强连通分量
    欧拉路、欧拉回路
    DFS 树
    【题解】[AGC 034 F] RNG and XOR【异或卷积 FWT】
    【题解】[UOJ 62] UR #5 怎样跑得更快【莫比乌斯反演】
    【题解】LOJ #2085 / 洛谷 P1587「NOI2016」循环之美【莫比乌斯反演】
    【题解】LOJ #6052 「雅礼集训 2017 Day11」DIV【莫比乌斯反演】
    【题解】[HDU 5382] GCD?LCM【莫比乌斯反演 差分 线性筛】
    【题解】[51Nod 1847] 奇怪的数学题【min_25筛 杜教筛 莫比乌斯反演】
  • 原文地址:https://www.cnblogs.com/wangzn/p/7093028.html
Copyright © 2011-2022 走看看