掌握String StringBuilder StringBuffer类的区别
一.String
 String是不可变类,一旦String对象被创建之后,包含对象中的字符串序列都是不可改变的,直到类被销毁.如图

 再次给a赋值后,之前的实例对象仍然存在,a生成了一个新的实例对象,且旧的实例对象如果没有被再次引用,就会被垃圾回收.
二.StringBuffer
 StringBuffer表示为字符序列可变的字符串,及创建StringBuffer对象之后,可以通过append(),insert(),reverse(),setCharAt()等方法改变字符串序列,改变为最终想要的字符串后可通过toString()方法转换为String对象.

三.Stringbuilder
 StringBuilder类表示可变字符串对象,与Stringbuffer类基本相似.不同的是:SreingBuffer为单线程,StringBuilder为多线程,性能略高.
判断字符串有没有大写字母
package Demo;import java.util.Scanner;public class Demo2 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入要判断的英文字符串:");String line = sc.nextLine();if (line.matches("^.*[A-Z].*$")) {System.out.println(String.format("%s:有大写字母", line));}else{System.out.println(String.format("%s:没有大写字母",line));}}
}
判断字符串中有没有汉字
package Demo;public class Demo3 {public static void main(String[] args) {System.out.println("中国China".matches("^.*[\u4e00-\u9fa5].*$"));}
}
判断字符串中有没有数字
package Demo;public class Demo4 {public static void main(String[] args) {System.out.println("123456789".matches("^.*\\d.*$"));System.out.println("Hallo world".matches("^.*\\d.*$"));}
}
判断一个字符串是不是标准的手机号
package Demo;import java.util.Scanner;public class Demo5 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入您的手机号:");while (true) {String line = sc.nextLine();if (line.matches("^1[158]\\d{9}$")) {System.out.printf("您的手机号码为%s", line);break;} else {System.out.println("您输入的手机号不合法,请重新输入");System.out.println();}}}
}
注册项目时,用户的姓名要么是全中文,要么是全英文,不能其它符号,不可以使用混合
package Demo;import java.util.Scanner;public class Demo6 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入您注册的用户名:");while (true) {String line = sc.nextLine();if (line.matches("^[\\u4e00-\\u9fa5]+|[a-zA-Z]+$")) {System.out.printf("您的用户名为:%s", line);break;} else {System.out.println("您输入的用户名不合法,请重新输入");}}}
}
求123456789 字符串1…9 之间不改数字位置随机±要求表达结果和为100,写出这样表达式
package Demo;import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Demo7 {public static void main(String[] args) {String[] sym = {"","+","-"};Random r = new Random();while(true) {StringBuilder sbu = new StringBuilder("");for (int i = 1; i < 9; i++) {sbu.append(i).append("".concat(sym[r.nextInt(sym.length)]));}sbu.append(9);Pattern p = Pattern.compile("-?\\d+");int sum = 0;Matcher m = p.matcher(sbu.toString());while (m.find()) {sum += Integer.parseInt(m.group());}if (sum == 100) {System.out.printf("%s = 100", sbu.toString());break;}}}
}

String,Stringbuilder,Stringbuffer及正则表达式相关推荐

  1. String StringBuilder StringBuffer三者之间的区别~~~

    String StringBuilder  StringBuffer三者之间的区别~~~ String是字符串常量,它是典型的immutable类,被声明final class,所有的属性都是fina ...

  2. String ,StringBuilder,StringBuffer的区分

    String ,StringBuilder,StringBuffer的区分 一.区别 String是字符串常量,而StringBuffer和StringBuilder是字符串变量.由String创建的 ...

  3. Java 集合 --- String, StringBuilder, StringBuffer

    Java 集合 --- String, StringBuilder, StringBuffer String String的声明方式 String的不可变性 对比两个String StringBuil ...

  4. String StringBuilder StringBuffer 包装类 Date 类 枚举类

    String,StringBuilder,StringBuffer直接的区别是: String 不可变长的字符序列 StringBuilder 可变长的字符序列,线程不安全的,效率较高 StringB ...

  5. String , StringBuilder , StringBuffer

    String 首先从String底层看起 从底层代码被final修饰,我们能看出来,String是只读字符串,他的成员方法也都默认为final方法.所以String所引用的字符串内容不能被改变 Str ...

  6. Java回顾-String/StringBuilder/StringBuffer

    一.String的特点 1.String类代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 2.String是一个final类,代表不可变字 ...

  7. String StringBuilder StringBuffer 对比 总结得非常好

    转自:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸 ...

  8. String/Stringbuilder/StringBuffer

    三个的运行速度:Stringbuilder>Stringbuffer>String String最慢是因为它是字符串常量,而其他两个是字符串变量. 其中stringbuilder是非线程安 ...

  9. stringbuffer常用方法_Java 处理字符串常用的类:String StringBuilder StringBuffer

    在Android/Java开发中,用来处理字符串常用的类有3种: String.StringBuilder.StringBuffer. 它们的异同点: 1) 都是 final 类, 都不允许被继承; ...

最新文章

  1. 在CentOS上搭建PHP服务器环境
  2. java 国家名称排序,我有一个国家名单。我想按字母顺序对它进行排序,除了两个我想放在第一位的国家...
  3. linux子系统安装docker,linux上安装Docker(非常简单的安装方法)
  4. 用HTML语言制作一个非常浪漫的生日祝福网,手把手教你制作炫酷生日祝福网页
  5. 2022年华为杯中国研究生数学建模竞赛C题思路
  6. 华为盒子m330能生鸿蒙吗,华为盒子M330你不知道却很流弊的六个功能!
  7. JavaScript 学习-42.jQuery 提交表单 submit() 方法
  8. 设置div背景透明的方法
  9. Most of the disks failed
  10. 2021-11-09水洗碳带有什么特点
  11. apt-get: command not found解决方案
  12. mysql prefix_mysql改变innodb_large_prefix
  13. 网络曝光华为自研操作系统“鸿蒙” (图)
  14. 弹出表情气泡仿魔兽的技能冷效果却实现
  15. 电脑系统重装下载的系统在哪找到
  16. Anti_TexturePacker工具
  17. 职业经理人七项修炼-转自栖息谷
  18. javascript基础复习之函数,定时器,erval函数
  19. Android基础入门教程——7.6.1 Socket学习网络基础准备
  20. [dataframe]python数据集中数据统计分析

热门文章

  1. js 自定义构造函数
  2. iPAD vs iPhone:食指向拇指的挑战
  3. 已知2019年是猪年,请在控制台输出从1949年到2019年中所有是猪年的年份
  4. oracle批量删除表空间,批量删除oracle用户表空间
  5. 80后IT创业启示 [CSDN]
  6. 构建Canvas矢量图形渲染器(四)—— 各种矢量元素(线、面、五角星)
  7. 硕盟Type C 转(HDMI+LAN+PD+USB3.0*3)六合一扩展坞
  8. 互联网企业造手机,“小3大战”烽火再起
  9. Reduced ID Numbers
  10. 网络游戏线上活动的类型及特点(二)