Java字符串方法总结

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
%tY4位年份2008
%tj一年中的第几天(001~366)085
%tm月份03
%td一个月中的第几天(01~31)02
%ty2位年份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说明++

本篇内容总结

暂无

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值