public class StringTest {
public static void main(String[] args) {
// 如何将一个byte数组转换成字符串
byte[] bs = { 97, 122, 45, 32, 0, 100, 98 };
String s = new String(bs);
System.out.println(s);
// 怎么将String字符串转换成byte数组
String bb = "张三";
try {
// 编码转换问题 GBK->UTF-8
byte[] bbs = bb.getBytes("UTF-8");
String r = new String(bbs, "UTF-8");
System.out.println(r);
// 将UTF-8 ->GBK
byte[] bbs2 = r.getBytes("GBK");
String rr = new String(bbs2, "GBK");
System.out.println(rr);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
// 返回指定下标的字符
char c = bb.charAt(1);
System.out.println(c);
System.out.println(bb.codePointAt(1));
String ls = "李四";
int i = ls.compareTo(bb);
System.out.println(i);
// 将李四连接到张三的后面
String n = bb.concat(ls);
System.out.println(n);
// 判断是否拥有此字符串
System.out.println(bb.contains("李"));
// 将char数组转换为String字符串
char cc[] = { '我', '和', '你', '都', '我', '是' };
String ncc = String.copyValueOf(cc);
System.out.println(ncc);
// 判断字符最后一位
boolean ew = ncc.endsWith("你");
System.out.println(ew);
// 忽略大小写的内容比较
System.out.println(ncc.equalsIgnoreCase(bb));
// 国际化 i18n zh_CH en_US
String format = String.format(new Locale("zh_TW"), "张三");
System.out.println(format);
// 返回指定字符串的下标
int indexOf = ncc.indexOf("三");
System.out.println(indexOf);
// 从下标3(包含)的位置往后找第一个出现的下标
int indexOf2 = ncc.indexOf("我", 3);
System.out.println(indexOf2);
// 倒着找第一个出现的下标
int lastIndexOf = ncc.lastIndexOf("我");
System.out.println(lastIndexOf);
// 判断字符串是否是空房子
String nn = "";
System.out.println(nn.isEmpty());
// join 特殊拼接
String join = String.join("#", "张三", "李四", "王五");
System.out.println(join);
// 返回字符串的长度
System.out.println(join.length());
// 正则表达式
String tel = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$";// 手机号
String email = "^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*\\.[a-zA-Z0-9]{2,6}$";
String idCard = "(^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$)|(^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{2}$)";
boolean b = Pattern.compile(tel).matcher("13838389438").matches();
boolean b1 = Pattern.compile(email).matcher("373828882@qq.com").matches();
String sfz = "41270119900916353X";
boolean b2 = sfz.matches(idCard);
System.out.println(b2);
// 字符串的替换
String nnnn = join.replace("#", "@");
System.out.println(nnnn);
// 正则表达式进行正则表达式替换
String replaceAll = join.replaceAll("\\W", "8");
System.out.println(replaceAll);
// 只替换第一个
String reString = join.replaceFirst("#", "8");
System.out.println(reString);
// 按照指定正则表达式拆分字符串
String[] ss = join.split("#");
System.out.println(Arrays.toString(ss));
String eg = "张三#20#男@李四#21#男@王五#22#女";
String[] split = eg.split("@");
for (String egs : split) {
String[] split2 = egs.split("#");
System.out.println(Arrays.toString(split2));
}
// 判断字符串以什么开头
System.out.println(join.startsWith("张"));
// 截取字符串
CharSequence cs = join.subSequence(0, 3);
System.out.println(cs);
// 截取字符串
String substring = join.substring(1);
System.out.println(substring);
String substring2 = join.substring(2, 5);
System.out.println(substring2);
// 截取李四
String lss = join.substring(join.indexOf("李四"), join.indexOf("李四") + 2);
System.out.println(lss);
// 截取三到四
String substring3 = join.substring(join.indexOf("三"), join.indexOf("四") + 1);
System.out.println(substring3);
// 字符串转换为char的数组
char[] charArray = join.toCharArray();
System.out.println(Arrays.toString(charArray));
String xx = "abc";
// 转大写
String dxx = xx.toUpperCase();
System.out.println(dxx);
// 转小写
xx = dxx.toLowerCase();
System.out.println(xx);
String sn = " 张 三 ";
// 去空格
String trim = sn.trim();
System.out.println(trim);
// String ->boolean
String be = "TRUE";
Boolean valueOf = Boolean.valueOf(be);
System.out.println(valueOf);
be = String.valueOf(valueOf);
System.out.println(be);
}
}
JavaSE String
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 本文主要介绍replaceFirst的使用方法 查看JDK API可以看到replaceFirst()描述如下:p...
- 总结:1.字面量 拼接 字面量,结果还是在常量池(内存剖析中有说)中创造一个新的字面量。java字符串常量池只会产...
- 你了解String类吗? 1 想要了解一个类,最好的办法就是看这个类的实现源代码String类的定义如下: 1 S...
- String,StringBuilder,StringBuffer都表示字符串,但是你真的了解过它们的区别吗好,我...
- 今天学习了 Java 字符串的常用操作,写出来和简友们分享一下☺️还是老规矩,先上思维导图。 1.String 概...