3.2.2 字符串的常用方法
| 方法 | 说明 |
| — | — |
| length() | 取得字符串的字符长度 |
| equals() | 判断两个字符串中的字符是否等于 |
| toLowerCase() | 转换字符串中的英文字符为小写 |
| toUpperCase() | 转换字符串中的英文字符为大写 |
特别强调:字符串比较可以比较 变量的地址值, 也可以比较变量的 内容(串)。
3.2.3 字符串的转换
1)字符串==>数值
Int x = Integer.parseInt(str);
float n = Integer.parseFloat(str);
Double b = Double.valueOf(str).doubleValue();
2)数值==>字符串
String.valueOf( 各类型数值变量 or 常量)
例如:String str = String.valueOf(124.345);
String s2 = String.valueOf(3000);
3)字符串 ==> 字节数组
byte b[ ] = 字符串对象.getBytes();
例如: byte b[ ] = “this is a string”.getBytes();
4)字节数组 => 字符串
public class Tester {
public static void main(String[] args) {
byte[] bts = {1,65,98,4,5};
String str = new String(bts, 1, 2);
System.out.println(str); // 输出什么?
byte[] en = “welikejava”.getBytes();
String str2 = new String(en, 2, 4);
System.out.println(str2); // 输出什么?
byte[] cn = “我们喜欢Java”.getBytes();
String str3 = new String(cn, 6, 5);
System.out.println(str3); // 输出什么?
}
}
运行结果:
Ab
like
欢Jav
3.2.4 StringTokenizer字符分析器
StringTokenizer 类, 来自 java.util 包中,其对象被称为字符分析器。
构造方法:
StringTokenizer(String str, String delimeter)
将 str 字符串封装到一个对象中, 分隔符由 delimeter 变量指定,可指定多个字符。
例如:
String str = “this is a test. Please test your codes.”;
StringTokenizer token = new StringTokenizer(str, “ ”);
// token对象称为字符分析器,将分析str字符串,采用 空格 作为分析时的分隔符号。
常用方法:
-
hasMoreTokens() 检测被分析的字符串中是否还有语言符号,有则返回true,否则false,多用在循环的条件中;
-
nextToken() 逐个获取被分析字符串中的语言符号;
-
countTokens() 计算总共调用了nextToken方法的次数,可统计出解析出来的语言符号的个数。
例如: 将如下字符串中的 单词 全部找出来 ---- 去掉空格和句点符号。
String str = "this is a test. Please test your code. After the test, you can release you program. ";
常规办法: 可以利用 String 类中的 split 方法,将每个单词(又称为Token,语言符号)或标点符号,分割存放到一个String[ ]中,然后针对数组循环,碰到那些符号的,跳过。
字符分析器:
import java.util.StringTokenizer;
public class Tester {
public static void main(String[] args) {
String str = "this is a test. Please test your code. After the test, you can release you program. ";
StringTokenizer token = new StringTokenizer(str, “. ,”); // 三种符号,作为分隔符
while(token.hasMoreTokens()){
String s = token.nextToken();
System.out.println(s);
}
}
}
3.2.5 正则表达式
正则表达式的特点:
-
位于java.util.regex 包中;
-
是一种可以用于模式匹配和替换的规范;
-
由普通的字符、特殊字符组成的文字模式;该模式用来描述在查找文字主体时待匹配的一个或多个字符串;
-
正则表达式将某个字符模式与所搜索的字符串进行匹配;
-
多用于在文本中搜索、替换、析出有价值的信息。例如:当你从网上爬取一些网页后,希望将网页中的有用信息摘取出来;
-
构成正则表达式的一些字符
正则表达式的应用:
A. 模式类: java.util.regex 包中 Pattern
Pattern类提供了一个 compile() 类方法 ( 类名.方法名()
调用),用于编译一个正则表达式,然后初始化创建出一个模式对象。 例如: Pattern p =
Pattern.compile(regx); // regx 是一个正则表达式
B. 匹配类: java.util.regex 包中 Matcher
利用Pattern的对象 p.matcher(“要解析的字符串”) 来创建出一个 Matcher 的 对象 m。然后利用m.find()
和m.group()就可以解析出匹配正则表达式的字符串。
C. 使用Pattern、Matcher类及正则表达式,来解析数据
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Tester {
public static void main(String[] args) {
Pattern p; //模式对象
Matcher m; //匹配对象
String regex = “(http://|www)\56?\w+\56{1}\w+\56{1}\p{Alpha}+”;
p = Pattern.compile(regex); //初始化模式对象
String s = “新浪:www.sina.cn,央视:http://www.cctv.com”;
m = p.matcher(s); //得到检索s的匹配对象m
while(m.find()) {
String str = m.group();
System.out.println(str);
}
}
}
运行结果:
最后
分享一些资料给大家,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。
《Java高级面试》
《Java高级架构知识》
《算法知识》
加入社区:https://bbs.youkuaiyun.com/forums/4304bb5a486d4c3ab8389e65ecb71ac0
图片描述](https://img-blog.csdnimg.cn/20210331154131735.png#pic_center)
最后
分享一些资料给大家,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。
《Java高级面试》
[外链图片转存中…(img-s7cunzoQ-1725674438549)]
《Java高级架构知识》
[外链图片转存中…(img-T07M3GKC-1725674438550)]
《算法知识》
[外链图片转存中…(img-yorW9x1g-1725674438550)]
加入社区:https://bbs.youkuaiyun.com/forums/4304bb5a486d4c3ab8389e65ecb71ac0