Java字符串总结
本人正在学习Java语法,技术力尚小,且本文为对书的个人理解,如有错误欢迎各位在评论区指正。
基本概念类
1.用 “” 引起的都为字符串
2.字符串在Java中被视为对象管理
字符串创建办法
//用一个字符数组a创建String对象
String(char a[])
//代码示例
char a[] ={'g','o','o','d'};
String a = new String(a);
//提取数组a中某一段字符创建一个字符串对象(为上种字符串创建方式的扩充)
String(char a[], int offset, int length)
//代码示例(类似于vb中的mid函数)
char a[] ={'g','o','o','d'};
String a = new String(a, 1, 3);
//示例的等价代码
String a = new String("ood");
//分配一个新的String对象,表示数组内所有元素连接的结果
String(char[] value)
//代码示例
char a[] ={'g','o','o','d'};
String a = new String(a);
//示例的等价代码
String a = new String("good");
上述方法都为使用String类构造字符串变量,下面的方法是通过应用常量赋值给字符串变量。
//引用字符串常量来创建字符串变量
String str1,str2;
str1 = "hello world";
3.连接字符串
使用符号’+'可以连接字符串,如果被加成分中有String类型变量,则其他变量将自动转化为String类型变量,在这过程中调用了toString()方法。
注1:为方便阅读可以将长字符串分行书写,但是需要用’+‘连接,并且在在’+'处换行
注2:拼接字符串时也需要注意运算符优先级
System.out.println("I like "+
"Java");
方法示范类
4.获取字符串信息
4.1获取字符串长度
方法名:length()
//获取字符串对象的长度
str.length()
//代码示例
String a = "we are students";
int size = a.length();
4.2字符串查找
方法名:indexOf()
//检索字符首次出现的位置
str.indexOf(substr)
//示例代码
String a = "we are students";
int index = a.indexOf("a");
方法名:lastIndexOf()
注:如果lastIndexOf()方法的参数为"",则返回值与length()的返回值相同(不是length-1)。
//检索字符末次出现的位置
str.lastIndexOf(substr)
//示例代码同上
4.3获取指定位置字符
方法名:charAt()
//返回指定索引处的字符
str.charAt(int index)
//示例代码
String a = "hello world";
char mychar = a.charAt(4); //返回结果mychar = o
5.字符串操作
5.1获取子字符串
方法名:substring()
//截取相应位置的子串
str.substring(int beginIndex, int endIndex);
//示例代码
String a = "hello world";
String mystr = a.substring(0,3); //返回hell
当endIndex不赋值时,截取到字符串末尾
5.2去除空格
方法名:trim()
//忽略前导和尾部空格
str.trim();
//示例代码
String a = " hello world "; // a.length() == 16;
String mystr = a.trim(); //mystr.length() == 11;
5.3字符串替换
方法名:replace()
//指定字符和字符串替换为新的字符或字符串
str.replace(char oldChar,char newChar);
//示例代码
String a = "address";
String newa = a.replace("a","A");
5.4判断字符串的开始和结尾
方法名1:startsWith()
方法名2:endsWith()
//判断当前字符串对象的前缀是否为指定字符串
str.startsWith();
//示例代码
String a = "hello world";
boolean b = a.startsWith("he");
//endsWith()方法与上述一致
5.5判断字符串是否相等
方法名:equals()
方法名:equalsIgnoreCase()
//对比字符串是否相等
str.equals(String otherstr)
str.equalsIgnoreCase(String otherstr)
//示例代码
String str1 = new String("hello world");
String str2 = new String("Hello World");
boolean a = str1.equals(str2); //equals()区别大小写,故a = false;
boolean b = str1.equalsIgnoreCase(str2); //equalsIgnoreCase()不区分大小写,故b= true;
5.6按字典(unicode码)顺序比较两个字符串
方法名:compareTo()
//比较两字符串的顺序,返回unicode差值
str.compareTo(String otherstr)
//示例代码
String a = new String("happy");
String b = new String("hapr");
System.out.println(a.compareTo(b));
注:从字符串首位开始比较,且区分大小写,遇到不同后停止,返回unicode差值。return unicode(比较对象-参数对象)
5.7字母大小写转换
方法名1:toLowerCase()
方法名2:toUpperCase()
//代码不再赘述
注:数字或非字符不受影响。
5.8字符串分割
方法名:split()
//按指定分割字符或字符串进行分割,并将结果存放在字符串数组中
str.split(String sign, int limit)
//示例代码
String str = "192.168.0.1"
String[] Array = str.split(\\.,2) //"."需要使用转义字符"//."
注1:sign为分割符,也可使用正则表达式
注2:使用"|“定义多个分割符,如”,|="
注3:limit为空时全拆分
注4:例如limit=2时,实际将字符串从前至后分为两个数组
5.9格式化字符串
方法名:format()
Case 1:日期和时间字符串格式化
Date date = new Date(); //创建Date对象date
String s = String.format("%te",date); //通过format()方法对date进行格式化
常用的日期格式化转换符:
转换符 | 说明 | 示例 |
---|---|---|
%te | 一个月中的某一天 | 2 |
%tb | 指定的月份简称 | Feb、二月 |
%tB | 指定的月份全称 | February、二月 |
%ta | 指定的星期简称 | Mon、星期一 |
%tA | 指定的星期全称 | Monday、星期一 |
%tc | 全部时间信息 | 星期二 三月 25 13:37:22 CST 2008 |
%tY | 4位年份 | 2008 |
%tj | 一年中的第几天(001~366) | 085 |
%tm | 月份 | 03 |
%td | 一个月中的第几天(01~31) | 02 |
%ty | 2位年份 | 08 |
说明:java.util.Date库可以用于返回当前时间
Case 2:时间格式化
转换符见Java入门到精通p94表5.2
Case 3:日期和时间的组合
转换符见Java入门到精通p95表5.3
Case 4:常规类型格式化(c转换符的扩充)
转换符 | 说明 | 示例 |
---|---|---|
%b %B | 格式化为布尔 | true |
%h %H | 格式化为散列码 | A05A5198 |
%s %S | 格式化为字符串 | “abcd” |
%c %C | 格式化为字符 | ‘a’ |
%d | 格式化为10进制整数 | 40 |
%o | 结果表示为8进制 | 11 |
%x %X | 结果表示为16进制 | 4b1 |
%e | 格式化为计算机科学计数法的十进制数 | 1.700000e+01 |
%a | 格式化为带有效位数和指数的16进浮点值 | 0X1.C00000000001P4 |
%n | 特定于平台的行分隔符 | |
%% | 结果字面为"%" | % |
5.10正则表达式
正则表达式见Java入门到精通p96
尚不了解 不做描述
5.11字符串生成器
技术背景:可变的字符序列String-Builder类可以提高频繁增加字符串的效率。与之对应的"+"附加新字符极大地增加了系统开销,因为她不会产生新的String实例。
注:输出字符串结果可以用toString()方法
//String-Builder用法
StringBuilder bf = new StringBuilder("hello");
bf.insert(5,"world");
类似的字符串生成器方法还有:
//具有多个重载,可在生成器中追加任何类型的内容
append(content);
insert(int offset, arg); //offset为插入位置
//删除字符串中被选中的区域
delete(int start, int end); //当start==end时不发生更改
++更多String-Builder方法见java.lang.StringBuilder的API说明++
本篇内容总结
暂无