String,Stringbuilder,Stringbuffer及正则表达式
掌握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及正则表达式相关推荐
- String StringBuilder StringBuffer三者之间的区别~~~
String StringBuilder StringBuffer三者之间的区别~~~ String是字符串常量,它是典型的immutable类,被声明final class,所有的属性都是fina ...
- String ,StringBuilder,StringBuffer的区分
String ,StringBuilder,StringBuffer的区分 一.区别 String是字符串常量,而StringBuffer和StringBuilder是字符串变量.由String创建的 ...
- Java 集合 --- String, StringBuilder, StringBuffer
Java 集合 --- String, StringBuilder, StringBuffer String String的声明方式 String的不可变性 对比两个String StringBuil ...
- String StringBuilder StringBuffer 包装类 Date 类 枚举类
String,StringBuilder,StringBuffer直接的区别是: String 不可变长的字符序列 StringBuilder 可变长的字符序列,线程不安全的,效率较高 StringB ...
- String , StringBuilder , StringBuffer
String 首先从String底层看起 从底层代码被final修饰,我们能看出来,String是只读字符串,他的成员方法也都默认为final方法.所以String所引用的字符串内容不能被改变 Str ...
- Java回顾-String/StringBuilder/StringBuffer
一.String的特点 1.String类代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 2.String是一个final类,代表不可变字 ...
- String StringBuilder StringBuffer 对比 总结得非常好
转自:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸 ...
- String/Stringbuilder/StringBuffer
三个的运行速度:Stringbuilder>Stringbuffer>String String最慢是因为它是字符串常量,而其他两个是字符串变量. 其中stringbuilder是非线程安 ...
- stringbuffer常用方法_Java 处理字符串常用的类:String StringBuilder StringBuffer
在Android/Java开发中,用来处理字符串常用的类有3种: String.StringBuilder.StringBuffer. 它们的异同点: 1) 都是 final 类, 都不允许被继承; ...
最新文章
- 在CentOS上搭建PHP服务器环境
- java 国家名称排序,我有一个国家名单。我想按字母顺序对它进行排序,除了两个我想放在第一位的国家...
- linux子系统安装docker,linux上安装Docker(非常简单的安装方法)
- 用HTML语言制作一个非常浪漫的生日祝福网,手把手教你制作炫酷生日祝福网页
- 2022年华为杯中国研究生数学建模竞赛C题思路
- 华为盒子m330能生鸿蒙吗,华为盒子M330你不知道却很流弊的六个功能!
- JavaScript 学习-42.jQuery 提交表单 submit() 方法
- 设置div背景透明的方法
- Most of the disks failed
- 2021-11-09水洗碳带有什么特点
- apt-get: command not found解决方案
- mysql prefix_mysql改变innodb_large_prefix
- 网络曝光华为自研操作系统“鸿蒙” (图)
- 弹出表情气泡仿魔兽的技能冷效果却实现
- 电脑系统重装下载的系统在哪找到
- Anti_TexturePacker工具
- 职业经理人七项修炼-转自栖息谷
- javascript基础复习之函数,定时器,erval函数
- Android基础入门教程——7.6.1 Socket学习网络基础准备
- [dataframe]python数据集中数据统计分析
热门文章
- js 自定义构造函数
- iPAD vs iPhone:食指向拇指的挑战
- 已知2019年是猪年,请在控制台输出从1949年到2019年中所有是猪年的年份
- oracle批量删除表空间,批量删除oracle用户表空间
- 80后IT创业启示 [CSDN]
- 构建Canvas矢量图形渲染器(四)—— 各种矢量元素(线、面、五角星)
- 硕盟Type C 转(HDMI+LAN+PD+USB3.0*3)六合一扩展坞
- 互联网企业造手机,“小3大战”烽火再起
- Reduced ID Numbers
- 网络游戏线上活动的类型及特点(二)