zoukankan      html  css  js  c++  java
  • java中遇到过的String的一些特性

    1.string对象是final的?

    1 String str="asdfdf";
    2 str.replace("as","");
    3 System.out.println(str);//asdfdf
    4 str=str.replace("as","");
    5 System.out.println(str);//dfdf

    2.字符串的切割

    遇到根据url获取参数的问题:

    enterId = Long.parseLong(target.split("/")[2]);
    这个要处理切割字符串问题
    splitapi里是这样的:

    public String[] split(String regex,int limit)根据匹配给定的正则表达式来拆分此字符串。
    此方法返回的数组包含此字符串的子字符串,每个子字符串都由另一个匹配给定表达式的子字符串终止,或者由此字符串末尾终止。数组中的子字符串按它们在此字符串中出现的顺序排列。如果表达式不匹配输入的任何部分,那么所得数组只具有一个元素,即此字符串。limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。

    例如,字符串 "boo:and:foo" 使用这些参数可生成以下结果:

    Regex Limit 结果
    : 2 { "boo", "and:foo" }
    : 5 { "boo", "and", "foo" }
    : -2 { "boo", "and", "foo" }
    o 5 { "b", "", ":and:f", "", "" }
    o -2 { "b", "", ":and:f", "", "" }
    o 0 { "b", "", ":and:f" }

    public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。 该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。

    例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果:

    Regex 结果
    : { "boo", "and", "foo" }
    o { "b", "", ":and:f" }


    参数:
    regex - 定界正则表达式
    返回:
    字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的
    抛出:
    PatternSyntaxException - 如果正则表达式的语法无效

    3.对json字符串去空值

    上传代码错误导致数据库中地址存储有问题,有一些空的value,还有结尾多了两个键值对,当然也有的没问题。对sql掌握比较差,于是选择了用java处理,更新数据库。

    处理的数据对象是这样的:

    1 '{"showImg_1":"/upload/webHome/template/4ddedebb-7615-4686-b27a-b515a6a5a2cc.jpg","showImg_2":"/upload/webHome/template/2c0806ee-6165-4b95-949d-340ddad18171.jpg","showImg_3":"/upload/webHome/template/35464a57-a987-4e40-91b4-f5b33e343f46.jpg","showImg_4":"/upload/webHome/template/9bddbbd6-1ad2-4290-b087-caa26bf93197.jpg","showImg_5":"/upload/webHome/template/604b7531-384b-4052-93cb-e5d51182023b.jpg","showImg_6":"/upload/webHome/template/4673cf82-fa07-4acc-ac7c-e5c7ef9af687.jpg","showImg_7":"","showImg_8":"","emplate.quickmark":"/upload/webHome/template/27b4cb88-b3b2-4046-bedd-c4ad92735310.jpg","emplate.img":"/upload/webHome/template/7949e9eb-eb86-4d54-ab09-1271ea202b2e.jpg"}'

    用的jfinal框架:

     1 /**
     2      * 处理错误数据
     3      */
     4     public void manageSQL(){
     5         String sql="select * from _table";
     6          List<Record> list=Db.find(sql);
     7          setAttr("length",list.size());
     8          for(int i=0; i<list.size(); i++){
     9              //取出一条记录
    10              Record r=list.get(i);
    11              //取出json数据
    12              String json=r.getStr("showImg");
    13              setAttr("old=",json);
    14              //去除emplate为key的开头的错误数据
    15              int ind=json.indexOf(","emplate");
    16              if(ind>0){
    17                  json=json.substring(0, ind)+"}";
    18              }
    19              setAttr("new=",json);
    20              //去除value为""的元素
    21              json=json.replaceAll("((?<=\{)"\w+":"",|,*"\w+":"")", "");
    22              setAttr("all:"+i,json);
    23              
    24              System.out.println(json+"=========");
    25              
    26              //入库保存更新
    27              r.set("showImg", json);
    28              
    29              Db.update("home_template",r);
    30              
    31          }
    32          
    33          renderJson();
    34     }

    4.String对象的一些方法:

    length() - 返回长度,注意和js中不同,js里面是length属性。

         对应长度:Array的长度-length;List的长度-size(); 

        

  • 相关阅读:
    0903编写ssh实现远程执行命令 并解决粘包问题
    学习日记0829 IP协议 子网掩码 端口TCP协议的三次握手 四次挥手 套接字socket
    学习日记0828单例 OSI七层协议
    学习日记0827异常处理 元类 自定义元类 自定义元类来实例化类 属性查找顺序
    函数装饰器
    函数对象
    参数
    函数
    文件操作
    字符编码
  • 原文地址:https://www.cnblogs.com/woshimrf/p/4605205.html
Copyright © 2011-2022 走看看