String:

public class StringApi {public static void main(String [] args){//stringApi("Hello World uzi");//valueTransfer();//StringTransfer();//citeTransfer();//SbApi();}/**由于字符串的频繁修改对内存开销较大,java.lang.StringBuilder/java.lang.StringBuffer其内部维护一个可变的字符数组,所以字符串的内容修改都可以在这个数组进行他们的区别主要是 StringBuffer是线程安全*/public static void SbApi(){StringBuffer sb = new StringBuffer("有志者,事竟成。破釜沉舟,百二秦关终属楚。苦心人,天不负。卧薪尝胆,三千越甲可吞吴。");System.out.println(sb.toString());sb.replace(0,3,"有痣者");System.out.println(sb.toString());sb.insert(0,"老子曾说:");System.out.println(sb.toString());sb.delete(2,3);System.out.println(sb.toString());sb.append("--老子表示:我没有说过");System.out.println(sb.toString());}/**java的存储空间有 栈和堆 ,栈用来存放 基本类型和 引用地址 优点是存取速度快堆用来存放由new等指令创建的对象和数组,可以动态地分配内存大小,java 的传递方式有 按值传递 和 引用传递基本类型都是按值传递的所有复合数据类型,包括数组、类和接口 都是引用传递,引用传递如果改变了它的引用地址,那么他修改的内容不会作用于原来地址指向的值String 也是引用传递,但String类型是 final 修饰的,当对象是不能被改变的,表面上看到的改变是因为他的引用指向了新的内存。*/public static void valueTransfer(){int num1 = 1;int num2 = 2;System.out.println("改变前:num1 = "+num1+", num2 = "+num2);changeInt(num1,num2);System.out.println("改变后:num1 = "+num1+", num2 = "+num2);}public static void changeInt(int num1,int num2){//值传递int temp = num2;num2 = num1;num1 = temp;}public static void StringTransfer(){//String类型的 引用传递,从运行结果来看String的值没有改变,是因为String 是fianl 修饰的类,他的值不能改变//当你把String的值改变时,那并不是真正的改变,只是开辟了另外一个新的空间来存放新的字符串,然后把 引用地址 指向了新的内存空间//也就是说 String 进行传递时它原来的值是没有被修改的,被修改的是另外一个的引用。(有点绕……)String str1 = "uzi";String str2 = "faker";System.out.println("改变前:str1 = "+str1+", str2 = "+str2);changeString(str1,str2);System.out.println("改变后:str1 = "+str1+", str2 = "+str2);}public static void changeString(String str1 , String str2 ){str1 = "faker";str2 = "uzi";}public static void citeTransfer(){// 引用传递,会把引用地址(也就是变量)指向的内存的值传递过去,当这个值改变时,因为引用地址还是指向这个内存,所以变量的值会改变了    StringBuffer sb1 = new StringBuffer("萍水相逢");StringBuffer sb2 = new StringBuffer("回眸一笑");System.out.println("改变前:sb1 = "+sb1+", sb2 = "+sb2);changeSb(sb1,sb2);System.out.println("改变后:sb1 = "+sb1+", sb2 = "+sb2);}public static void changeSb(StringBuffer sb1, StringBuffer sb2){sb1.append(",便已是琴心先许");sb2.append(",唯余那清风明月");}/**@param 参数说明@return 返回值说明@deprecated  过时方法,通常是有更好的方法可以取代或者发现有缺陷的方法,代表这个方法不推荐你使用@exception 异常说明*/public static void stringApi(String str){/*1.length(): 字符串长度2.indexOf(s):第一次出现 s 字符串的位置,如果没有返回 -13.substring(int begin,int end):字符串截取(开始位置,结束位置); 4.substring(int begin):从开始位置截取到最后5.trim():去吃字符串两边的空格6.charAt(int index):获取字符串指定位置的字符7.java.lang.String 这个类是final 修饰的 public final class String字符串一旦创建,对象无法改变,但是引用可以重新赋值 8. compareTo 第一个不相等的字符在 编码里相隔的距离 , */System.out.println("字符串长度:"+str.length());System.out.println("包含‘uzi’的位置:"+str.indexOf("uzi"));System.out.println("字符串截取【3-7】:"+str.substring(3,7));System.out.println("字符串截取【3-】:"+str.substring(3));System.out.println("字符串获取第一个字符:"+(str.charAt(0)+""));System.out.println("字符串compareTo(a,A):"+"a".compareTo("A"));}}

Regx:

import java.util.Arrays;
public class Regx{//正则表达式public static void main(String [] any){//regxDemo();splitDemo();}public static void splitDemo(){String http = "www.baidu.com";//因为 "." 在正则中是代表任意字符,所以当仅仅只想使用 "." 时需要进行转义,在java中 "\" 是有特殊含义的//不能单独使用,这是因为系统把“\.“当做转义符,但是实际上并没有这个转义符,所以要再加一个"\",变成"\\."String httpRegx = "\\.";String [] https = http.split(httpRegx);System.out.println("https:"+Arrays.toString(https));String operate = "2+5+4-7=?";String operateRegx = "[+\\-=]";String [] operates = operate.split(operateRegx);System.out.println("operates:"+Arrays.toString(operates));}public static void regxDemo(){String str = "弃我去者昨日之日不可留乱我心者今日之日多烦忧";String regx1 = "\\w+";if(str.matches(regx1)){System.out.println("\\w能匹配中文字符");}else{System.out.println("\\w不能匹配中文字符");}String clearlove7 = "clearlove7";// 以c开头,然后有8个单词字符,最后以7结尾String regx2 = "^c\\w{8}7$";if(clearlove7.matches(regx2)){System.out.println("clearlove7匹配成功");}else{System.out.println("clearlove7匹配不成功");}}/**正则表达式使用姿势1.字符集合[abcd]      a/b/c/d 中的一个字符[^abc]        除了abc以外的任意一个字符[a-zA-z0-9]   a到z 、A到Z、数字0到9之间的任意字符[a-z&&[^c]]    a到z 并且不是c.          任意字符\d          任意一个数字字符,相当于[0-9] digit的简写?\D            任意一个非数字字符,与小写时相反\s           一个空白字符,相当于[\t\n\f\r] space的简写?\w         任意单词字符,相当于[a-zA-z0-9] word的简写?2.数量词?          表示0个或者一个*           表示任意个+         表示非零个{n}            表示n个{n,}        表示n个以上{n,m}     表示n个到m个3.关系符()          分组|         或者&&            并且^         ^表示以字符串开始$          $表示以什么字符串结束*/}

java 的 String 和 正则相关推荐

  1. 常用类库-java.lang.String

    文章目录 常用类库-java.lang.String 简介 构造方法 常用方法: charAt codePointAt codePointBefore compareTo compareToIgnor ...

  2. Java字符串String相关

    String常用 1. char charAt(int index) 返回给定位置的字符 2. int indexOf(String str) 返回给定字符串的位置 3. int length() 返 ...

  3. Java / Android String.format 的使用

    String类的format()方法用于创建格式化的字符串以及连接多个字符串对象. 自己使用的地方1 拼接字符串 2 ,多语言文字顺序不同问题,例如中文:距离到公司还有30分钟, 时间是接口获取的, ...

  4. java.lang.NullPointerException: Attempt to invoke virtual method ‘boolean java.lang.String.equals(j

    今天切正式环境出现的空指针 记录一下 下面是错误 java.lang.NullPointerException: Attempt to invoke virtual method 'boolean j ...

  5. java string改变的影响_为什么Java的string类要设成immutable(不可变的)

    最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类 ...

  6. Android java传递string类型数据给C

    本文接着实现<Android java传递int类型数据给C>的还未实现的方法: public native String sayHelloInC(String s); 先贴一个工具方法, ...

  7. Java 之String、StringBuffer 和 StringBuilder 三者区别介绍

    String:字符串常量,字符串长度不可变,StringBuffer:字符串变量(Synchronized,即线程安全),StringBuilder:字符串变量(非线程安全). String Stri ...

  8. 2.Java中String,StringBuilder以及StringBuffer的关系与区别

    String     StringBuffer     StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量 ...

  9. java中String new和直接赋值的区别

        Java中String new和直接赋值的区别     对于字符串:其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)的就存储在常量池中,如果是运行期(new出来的)才 ...

最新文章

  1. linux mv 环境变量,linux环境变量,cp,mv命令,more,less,cat,tail,head,的使用...
  2. 为什么当项目启动后执行两次过滤器 再进行访问资源时执行一次过滤器
  3. js小记 function 的 length 属性
  4. mysql查询索引like_通过索引查询慢速搜索LIKE%MYSQL
  5. CentOS 初体验六:登录工具PuTTY使用
  6. 查找问题的利器 - Git Bisect
  7. 团队-爬取豆瓣电影TOP250-简单团队一阶段互评
  8. idea yml变成文件了_初识SpringBoot之配置文件(二)——配置文件值注入
  9. (转)一个由自由职业者建立的量化对冲基金
  10. rtmp/rtsp直播播放器选择
  11. 如何快速解决office2016每次打开都需要配置修复的问题,其他回答都是屁
  12. 【PI调节】对PI调节的一些认识
  13. 论文笔记:Bridging Textual and Tabular Data for Cross-Domain Text-to-SQL Semantic Parsing
  14. vue前端导出(XLSX)
  15. Maven Helper 安装使用
  16. Python全栈:Django模板
  17. android usb触摸屏idc实现触摸唤醒
  18. ncl批量处理多个nc文件_利用MATLAB读取NC文件并绘图
  19. ChaosBlade
  20. 【QT开发笔记-基础篇】| 第五章 绘图QPainter | 5.13 抗锯齿

热门文章

  1. Jms_guacamole、Jms_koko 常见问题 修复
  2. c++ Builder TMemo控件自动滚动
  3. CSS基础笔记——边框样式
  4. CSS 边框样式 文字样式 段落样式
  5. 同步原语问题汇总--芒果TV进击面试
  6. bugku域名解析记录
  7. CMOS放大器的频率特性--视频节选
  8. 论文阅读:(arXiv 2022)Loonie:Compressing COINs with Lo-constraints
  9. 基于HTML美食文化网页设计与实现——html+css+javascript+jquery+bootstarp响应式西餐厅美食网站
  10. 庞加莱截面的c语言编程,[转载]画Lorenz庞加莱截面图的程序