Java中的String、正则表达式
来源:互联网 发布:淘宝网品种销量排行榜 编辑:程序博客网 时间:2024/06/05 04:47
- String对象是不可变的,String类对象一旦创建它的所有属性都是final型的,不可更改。String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,用来包含修改后的字符串内容,但最初的String对象并没有发生改变。
String s="djdksal";//最初创建的字符串
s="aaa"+"123456";//在这个过程中会新生成其它的对象用来存储"aaa"和"123456",之后将s指向最终的生成对象所在的存储空间,但是代码最初生成的s是没有变化的. - StringBuilder和StringBuffer是可变的,二者的区别在于StringBuffer是线程安全的,StringBuilder不是线程安全的。当多线程访问时最好使用线程安全的StringBuffer。在执行效率方面StringBuilder最高,StringBuffer次之,String最低。针对这种情况,一般来说,如果操作的数据量比较小,应该优先使用String类;如果是在单线程下操作大量数据,应该优先使用StringBuffer类;而对于多线程下操作大量数据则优先使用StringBuilder类;
- String中的常用方法:
- length()计算字符串的长度
- charAt()获取指定索引位置的字符
- toCharArray()将字符串转化为字符数组
- getBytes()方法将字符串转化为新的字节数组
- toUpperCase()方法将字符串转化为大写
- toLowerCase()方法将字符串转化为小写
- equalsIgnoreCase()方法忽略大小写的情况下比较字符串是否相等
- compareTo()方法将两个字符串进行比较大小(按词典顺序比较,大小写不相等)
- contains()方法判断字符串中是否含有指定字符或者字符串
- startsWith()方法判断字符串是都以指定字符或者字符串开头
- endsWith()方法判断字符串是否以指定的字符或者字符串结尾
- subString()方法截取字符串中指定起始位置的字符
- concat()方法给原有的字符串连接新的字符串
- replaceAll()方法用指定的字符或者字符串替换原字符串中指定的字符
- trim()方法去掉字符串首尾两端的空白字符
- equals()方法比较两个字符串是否相等,没有覆盖父类的情况下,比较的是引用,这时和直接使用运算符”==”效果相同;覆盖了父类方法之后可以认为比较的是两个对象的内容.
- split()方法将输入的字符串断开为字符串对象数组,断开边界由正则表达式确定
package string;import java.util.Scanner;/** * Created by xpengfei on 2017/9/7. * 温习java中String的方法以及使用 */public class javaString { //主方法,用来调用以上测试String的各个子方法 public static void main(String[] args) { Scanner read=new Scanner(System.in); System.out.println("请输入要测试的字符串:"); String s=read.nextLine(); while(!s.equals("!")){ System.out.println("length()方法------输入的字符串长度为:"+s.length()); System.out.println("charAt()方法------字符串中索引位置为1的字符为:"+s.charAt(1)); char ch[]=new char[s.length()]; ch=s.toCharArray(); System.out.print("toCharArray()方法------s字符串转化为数组后为:"); for (int i = 0; i <ch.length ; i++) { System.out.print(ch[i]+"\t"); } System.out.println(); System.out.println("getBytes()方法,可以将字符串转化为一个新的字节数组!"); //将字符串转化为大写 String s1=s.toUpperCase(); System.out.println("toUpperCase()方法------转化为大写后的字符串:"+s1); System.out.println("equals()方法------s和s1相等:"+s.equals(s1)); System.out.println("equalsIgnoreCase()方法------忽略大小写s和s1是否相等:"+s.equalsIgnoreCase(s1)); System.out.println("compareTo()方法------s和s1的比较:"+s.compareTo(s1)); System.out.println("compareTo()方法------s和a+s1的比较:"+s.compareTo("a"+s1)); s1=s1.toLowerCase(); System.out.println("toLowerCase()方法------转化为小写后的字符串:"+s1); System.out.println("equals()方法------s和s1相等:"+s.equals(s1)); System.out.println("contains()方法------s中包含xing:"+s.contains("xing")); System.out.println("startsWith()方法------s是否以x开头:"+s.startsWith("s")); System.out.println("endsWith()方法------s是否以xing结尾:"+s.endsWith("xing")); System.out.println("subString()方法------截取s字符串中2-4位置的字符:"+s.substring(2,4)); System.out.println("concat()方法------给连接字符串namexing"+s.concat("namexing")); System.out.println("replaceAll()方法------"+s.replaceAll("xing","XING")); System.out.println("trim()方法------去掉s两端的空白字符:"+s.trim()); System.out.println("请输入要测试的字符串:"); s=read.nextLine(); } }}
- 在Java中所有新的格式化功能都由java.util.Formmatter类处理.format()方法模仿自C的printf().在使用上原理是相通的.
Formatter f=new Formatter(System.out); f.format("Float:%10.6f\n",12.034); //输出结果为Float: 12.034000,,,宽度为10,小数位数为6
- 正则表达式
- 表示一位数字 \d
- 可能有一个负号后面跟着一位或多位数字 -?\d+
- 任意字符 由 . 表示
- [abc] 表示包含a、b、c的任意字符(和a|b|c作用相同)
- [^abc] 除了abc意外的任何字符
- [a-zA-Z] 从a-z或从A-Z的任何字符
- [abc[hij]]任意a、b、c、h、i、j字符(同a|b|c|h|i|j)
- [a-z&&[hij]] 任意h、i、j
- \s 空白符(空格、tab、换行、回车)
- \S 非空白符
- \d 数字[0-9]
- \D非数字[^0-9]
- \w词字符[a-zA-Z0-9]
- \W 非词字符
- ^一行的起始
- $一行的结束
- \b词的边界
- 使用
// 编写正则表达式字符串 String regex="[0-9]+"; //编译正则表达式 Pattern p=Pattern.compile(regex); //已经编译过的Pattern对象上的matcher()方法,加上一个输入字符串,构造一个Matcher对象 Matcher m=p.matcher(s);// 调用Matcher对象中的matches()方法,查看是否有满足条件的存在,返回值为boolean System.out.println(m.matches());
阅读全文
0 0
- Java中的String、正则表达式
- java中的string类与正则表达式
- Java String 正则表达式
- String中的split(正则表达式)
- Java中的String与正则表达式浅述
- JAVA中的正则表达式
- java中的正则表达式
- Java中的正则表达式
- java 中的正则表达式
- java 中的正则表达式
- java中的正则表达式
- Java 中的正则表达式
- java中的正则表达式
- java中的正则表达式
- JAVA中的正则表达式
- java中的正则表达式
- java中的正则表达式
- Java中的正则表达式
- jquery-table切换
- Android中WebView渲染显示web页面
- K尾相等数
- [POJ2485]Highways
- linux下系统启动时,几个配置文件 /etc/profile、~/.bash_profile 等几个文件的执行过程,先后顺序
- Java中的String、正则表达式
- LeetCode:647. Palindromic Substrings
- linux安装mysql
- Qt使用QWebengineView导致花屏和黑屏现象
- 测试用例实例--常见功能测试点
- LeetCode 268. Missing Number
- 【Unity与23种设计模式】迭代器模式(Iterator)
- Cordova 自定义插件(Android)
- redis集群搭建详细指导(图文介绍)