JAVA(10)字符串处理

字符串处理

定义字符串
  • 使用String;
  • String str = "hello";
  • String str; str = "hello";
连接字符串
  • 使用" + " 号 连接
  • String str = "welcome to " + " beautiful "+"ShenZhen";
  • 使用concat连接
  • String info = "中国"; info.concat("广东").concat("深圳");
获取字符串长度
  • 使用字符串.length();
  • String str = "helloWorld"; str.length();
转换大小写
  • 大写使用toUpperCase()
  • String str = "hello"; str.toUpperCase();
  • 小写使用toLowerCase()
  • String str = "hello"; str.toLowerCase();
去除空格
  • 使用字符串.trim();
  • String str = " hello "; str.trim();
提取子字符串
  • substring(int beginIndex) 提取从索引位置开始至结尾处的字符串部分。
  • String str = " 我爱 Java 编程"; String newstr = str.substring(3);
  • substring(int beginIndex, int endIndex) 提取从索引位置开始至指定的位置的字符串部分。
  • String str = " 我爱 Java 编程"; String newstr = str.substring(3,7);
字符串分割
  • str.split(); 按指定的分割符对目标字符串进行分割,分割后的内容存放在字符串数组中。
  • 两种形式str.split(String sign); 或者 str.split(String sign, int limit);
  • String Colors = "Red,Black,White,Yellow,Blue";
  • String[] arr1 = Colors.split(",");
  • String[] arr2 = Colors.split(",",3);
字符串的替换
  • 字符串.replace(String oldstr, String newstr) 替换匹配到的字符串成一个新字符串
  • String words = "hello world, hello java";
  • words.replace("hello","你好");
  • 字符串.replaceFirst(String regex, String replacement) 替换匹配到的第一个字符串换成新字符串
  • String words = "hello java,hello javascript";
  • String newWords = words.replaceFirst("hello", "你好");
  • 字符串.replaceAll(String regex, String replacement) 将目标的字符串中匹配正则表达式的所有子字符串替换成新字符串
  • String words = "hello java, hello javascript";
  • newStr = words.replaceAll("hello", "你好");
字符串的比较

equals()equalsIgnoreCase()compareTo()

equals() 逐个比较两个字符串的每个字符是否相同, 字符串的大小写也在检查范围内
  • 字符串1.equals(字符串2)
  • String str1 = "abc"; String str2 = "ABC"; String str3 = new String("abc");
  • str1.equals(str2) // false
  • str1.equals(str3) // true
equalsIgnoreCase()
  • 和equals方法完全相同,唯一不同的是equalsIgnoreCase()不区分大小写。
  • String str1 = 'abc'; String str2 = 'ABC';
  • str1.equalsIgnoreCaseI(str2); // true
compareTo()
  • 用于按字典顺序比较两个字符串的大小,比较是基于字符串各个字符的Unicode值。
  • str.compareTo(String otherstr);
  • 它会按字典顺序将 str 表示的字符序列与 otherstr 参数表示的字符序列进行比较。如果按字典顺序 str 位于 otherster 参数之前,比较结果为一个负整数;如果 str 位于 otherstr 之后,比较结果为一个正整数;如果两个字符串相等,则结果为 0。
  • 提示:如果两个字符串调用 equals() 方法返回 true,那么调用 compareTo() 方法会返回 0。
  • String str = "A"; String str1 = "a";
  • str.compareTo(str1);
字符串查找
str.indexOf();
  • indexOf()和lastIndexOf()方法用于在字符串中获取匹配字符串的索引值。
  • indexOf方法用于返回字符串在指定字符串中首次出现的索引位置,如果能找到则返回索引值,否则返回-1;
  • str.indexOf(value);
  • str.indexOf(value, int fromIndex)
  • str 表示指定字符串,value表示待查找的字符串;fromIndex表示查找时的起始索引,如果不指定,则默认从指定字符串中的开始位置(默认为0)开始查找。
  • String s = "hello Java"; int size = s.indexOf("v");
str.lastIndexOf();
  • 用于返回字符串在指定字符串中最后一次出现的索引位置,如果能找到则返回索引,否则返回-1;
  • str.lastIndexOf(value);
  • str.lastIndexof(value, int fromIndex)
  • lastIndexOf() 方法的查找策略是从右往左查找,如果不指定起始索引,则默认从字符串的末尾开始查找。
根据索引查找charAt()
  • 字符串名.charAt(索引值)
  • 可以在字符串内根据指定的索引查找字符
  • String str = "today,monday,sunday";
  • str.charAt(0); str.charAt(3);
字符串的加密解密
  • 自定义函数实现?

StringBuffer类

  • 因为 StringBuffer 类是可变字符串类,创建 StringBuffer 类的对象后可以随意修改字符串的内容。每个 StringBuffer 类的对象都能够存储指定容量的字符串,如果字符串的长度超过了 StringBuffer 类对象的容量,则该对象的容量会自动扩大。

创建StringBuffer类

//定义一个空的字符串缓冲区,含有16个字符的容量
StringBuffer str1=new StringBuffer();
//定义一个含有10个字符容量的字符串缓冲区
StringBuffer str2=new StringBuffer(10);
//定义一个含有(16+4)的字符串缓冲区,"青春无悔"为4个字符
StringBuffer str3=new StringBuffer("青春无悔");
/*
*输出字符串的容量大小
*capacity()方法返回字符串的容量大小
*/
System.out.println(str1.capacity());    //输出 16
System.out.println(str2.capacity());    //输出 10
System.out.println(str3.capacity());    //输出 20

追加字符串

  • StringBuffer类的append()方法用于向原有StringBuffer对象中追加字符串。
  • StringBuffer 对象.append(String str);
StringBuffer buffer = new StringBuffer("hello,");
String str = "world";
buffer.append(str);
System.out.println(buffer.substring(0));     // hello,world

** 替换字符串**

  • StringBuffer类的setCharAt() 用于在字符串的指定索引位置替换一个字符。
  • StringBuffer 对象.setCharAt(int index, char ch);
  • 该方法是修改对象中索引值为index位置的字符为新的字符ch。
StringBuffer  str = new StringBuffer("hello");
str.setCharAt(1,"E");
System.out.println(str);     //hEllo
str.setCharAt(0,"H"):
System.out.println(str);  // HEllo

反转字符串

  • StringBuffer类中的reverse()方法将字符串序列用其反转的形式取代。
  • StringBuffer 对象.reverse();
StringBuffer  str = new StringBuffer("java");
str.reverse();
System.out.println(str);    // avaj

删除字符串

  • StringBuffer 提供deleteCharAt() 和 delete() 删除字符串的方法。
  • deleteChartAt()方法用于移除序列中指定位置的字符
  • StringBuffer 对象.deleteCharAt(int index);
StringBuffer  str = new StringBuffer("she");
str.deleteCharAt(2);
System.out.println(str);  //sh
  • delete 方法用于移除序列中子字符串的字符
  • StringBuffer 对象.delete(int start, int end);
  • start表示要删除字符的起始索引(包括索引值对应的字符),end表示要删除字符串的结束索引值。该方法作用是删除指定区域以内的所有字符。 取值范 [2,5) 包含前部分,不包含后部分
StringBuffer sb=new StringBuffer("hello jack");
sb.delete(2,5);
System.out.println(sb);    //输出:he jack
sb.delete(2,5);
System.out.println(sb);    //输出:heck
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容

  • 《Java从小白到大牛》纸质版已经上架了!!! 由字符组成的一串字符序列,称为“字符串”,在前面的章节中也多次用到...
    tony关东升阅读 801评论 0 2
  • 四、集合框架 1:String类:字符串(重点) (1)多个字符组成的一个序列,叫字符串。生活中很多数据的描述都采...
    佘大将军阅读 734评论 0 2
  • package cn.itcast_01;/* 字符串:就是由多个字符组成的一串数据。也可以看成是一个字符数组。 ...
    蛋炒饭_By阅读 578评论 0 0
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,365评论 0 4
  • 充实:在今天的视唱练耳课中,紧凑的完成了我的教学设计和内容,每一分每一秒都被我完全利用,我感到充实。 开心:在今天...
    灵韵Nice阅读 261评论 0 0