• String的使用方法和正则式的体现


    String  字符串
        一串字符就是字符串:char[],String,StringBuilder
         1   字符产“字面量”都是String类型实例
             String 内部就是一个char[].
         2   String API  有一个实现原则:对象内容永远被容不变
          也就是说:String对象永远不变
         3   String 字面量(直接量),如果相同,会替换为同一个String对象的引用,
                              常量连接的结果也被优化为同一个字符串。 
         4   String 的比较equals  , hasCode()
         5  String API(字符串的常用方法)
          这些方法如果返回String  一定是一个新String对象
          toString()除外.
          API 方法:
          charAt()
          length()
          trim()
          indexOf()
          lastIndexOf()
          endsWith()
          startsWith()
          substring(int start,int end)
          substring(int start)

    正则表达式:  负责的字符串匹配处理规则,应用广泛,
     学习简历:1   要能够都统正则表达式
        2   能够写出简单的
        3   不要过多的分配学习时间!
     可以应用于:java grep  vi
     1  字符集:[1234]表示1,2,3,4之一]      
              [^12]表示出了1,2
             [1-5]表示1,2,3,4,5之间
             [a-f]表示a-f之间的
             [0-9a-fA-F]表示:一个16进制字符
             [0-9a-f]{1,2}一到两次之间^[a]{5}$    从头到尾匹配5个a
          预定义字符集:
             \d:[0-9]
             .:任意字符
             \w:单词字符[0-9a-zA-Z]
             \s:匹配空白:空格,\t,\r....
          
        2 {m,n} 数词
              {n}
              {m,n}
              ?:{0,1}  一个或者零个
              +:{1,n}  一个以上
              *:{0,n}  零个以上
        3 ^开头
          $结尾
         
    邮政编码:   ^[0-9][0-9][0-9][0-9][0-9][0-9]$ 
          ^[0-9]{6}$
          ^\d{6}$
          
    用户名规则:^\w{8,10}$
    电话话:+86  13971754408
         规则:  ^(\+86)?\s?\d{11}$      
    身份证号码:^\d{15}(\d{2}[0-9x])?$      
    一个点的坐标:^\d+(,\s*|\s+)?\d+$
           3,2   3  2  3, 2  s

      1 import java.util.Scanner;
    2
    3
    4
    5 public class Commons {
    6
    7
    8
    9 /**
    10
    11 * @param args
    12
    13 * 实现Commons的StringUtils
    14
    15 * 1 支持指定 字符和长度的leftPad
    16
    17 * 输入:"1234",10,'#'
    18
    19 * 输出:######1234 "?\d+"?
    20
    21 * 2 支持指定 字符和长度的rightPad
    22
    23 * 输入:"1234",10,'#'
    24
    25 * 输出:1234######
    26
    27 * 3 提供repeat方法,讲一个字符串按照指定次数重复并返回
    28
    29 * 输入:"123",4
    30
    31 * 输出:123123123123
    32
    33 * 4 提供join方法将数组按照指定分隔符连接成字符串
    34
    35 * 输入:new Integer[]{1,2,3,4},"-"
    36
    37 * 输出:1-2-3-4
    38
    39 */
    40
    41 public static void main(String[] args) {
    42
    43 // TODO Auto-generated method stub
    44
    45 stringUtils();
    46
    47 }
    48
    49 public static void stringUtils(){
    50
    51 Scanner console=new Scanner(System.in);
    52
    53 System.out.println("请输入:");
    54
    55 String str=console.nextLine();
    56 //1 实现
    57 // leftPad(str);
    58 //2 实现
    59 // rightPad(str);
    60
    61 // //下列两个的str与前两个不一样
    62 //3 实现
    63 // repeat(str);
    64 s//4 小题实现
    65 join(str);
    66
    67 }
    68
    69 private static String join(String str) {
    70
    71 // TODO Auto-generated method stub
    72
    73 String []data=str.split("]|]\\s?");
    74
    75 //System.out.println(data[1]);
    76
    77 String []data1=data[1].split("}\\s?,\\s?|}\\s+");
    78
    79 System.out.println(data1[0]+"---"+data1[1]);
    80
    81 //1,2,3,4
    82
    83 // String a=data1[0].replaceAll("{", "");
    84
    85 int check=data1[0].indexOf("{");
    86
    87 String subStr=data1[0].substring(check+1);
    88
    89 System.out.println(subStr);
    90
    91 // -
    92
    93 String b=data1[1].replaceAll("\"", "");
    94
    95 System.out.println(b);
    96
    97 //分别存放数组里的数值
    98
    99 String []dint=subStr.split(",\\s?");
    100
    101 String all="";
    102
    103 for(int i=0;i<dint.length;i++)
    104
    105 {
    106
    107 if(i==dint.length-1)
    108
    109 {
    110
    111 all+=dint[i];
    112
    113 }else
    114
    115 all+=(dint[i]+b);
    116
    117 }
    118
    119 System.out.println(all);
    120
    121 return all;
    122
    123 }
    124
    125 private static String repeat(String str) {
    126
    127 // TODO Auto-generated method stub
    128
    129 String []data=str.split(",\\s?|\\s+");
    130
    131 String data0=data[0].replaceAll("\"","");
    132
    133 int b=Integer.parseInt(data[1]);
    134
    135 String sum="";
    136
    137 for(int i=0;i<b;i++)
    138
    139 {
    140
    141 sum+=data0;
    142
    143 }
    144
    145 return sum;
    146
    147 }
    148
    149 private static String rightPad(String str) {
    150
    151 // TODO Auto-generated method stub
    152
    153 String []data=str.split(",\\s?|\\s+");
    154
    155 String data0=data[0].replaceAll("\"","");//.split("\"");行不通
    156
    157 int n=data0.length();
    158
    159 int a=Integer.parseInt(data0);
    160
    161 //System.out.println(data0);
    162
    163 int b=Integer.parseInt(data[1]);
    164
    165 String data2=data[2].replaceAll("\'","");
    166
    167 //int c=Integer.parseInt(data2);
    168
    169 String sum="";
    170
    171 for(int i=0;i<b-n;i++)
    172
    173 {
    174
    175 sum+=data2;
    176
    177 }
    178
    179 return a+sum;
    180
    181 }
    182
    183 public static String leftPad(String str){
    184
    185 String []data=str.split(",\\s?|\\s+");
    186
    187 String data0=data[0].replaceAll("\"","");//.split("\"");行不通
    188
    189 int n=data0.length();
    190
    191 int a=Integer.parseInt(data0);
    192
    193 //System.out.println(data0);
    194
    195 int b=Integer.parseInt(data[1]);
    196
    197 String data2=data[2].replaceAll("\'","");
    198
    199 //int c=Integer.parseInt(data2);
    200
    201 String sum="";
    202
    203 for(int i=0;i<b-n;i++)
    204
    205 {
    206
    207 sum+=data2;
    208
    209 }
    210
    211 return sum+a;
    212
    213 }
    214
    215 // public static String[] pad(String str){
    216
    217 // return null;
    218
    219 // }
    220
    221 }

      

  • 相关阅读:
    校验身份证号、邮箱、手机号
    星级评分插件
    JS 实现轮播图
    js 禁止网页后退
    删除Redis缓存
    分析器错误,未能加载类型
    Vue 禁止按钮重复提交
    Vue 页面加载前显示{{代码}}的原因及解决办法 PC端
    设计模式之策略模式
    数据库索引知识到MySQL InnoDB
  • 原文地址:https://www.cnblogs.com/superjt/p/tjiang.html
Copyright © 2020-2023  润新知