二、我是菜鸟_6.Java字符串

字符串在开发中的重要程度不言而喻,必会而且要精通,其中带来的好处只有自己才清楚。

一、创建字符串

  1. 创建一个空字符串
    //    创建一个空字符串
    String str1 = new String();
  1. 用一个字符数组创建一个字符串 String(char[] c)
      char[] c = new char[] {'a','b','c','d','e','f','g'};
      String str2 = new String(c);
      System.out.println(str2);

3.提取字符数组中的一部分创建一个字符串对象 String(char[] c,int offset, int length)

        //  3个参数的意思:(字符数组的名字,起始索引,长度)       
    char[] c2 = new char[] {'h','a','h','n','i','c','e','i','o','s'};
    String str3 = new String(c2, 3, 4); 
    System.out.println(str3);

二、字符串的基本操作

  1. 连接字符串
      String str4 = new String("Hello");
      String str5 = new String("World!");
      System.out.println(str4 + " " + str5);
  1. 字符串连接其他类型
//  25是数值类型的数据,在使用‘+’进行连接操作时,会将25转化为String类型 "25"
    String str6 = new String("我今年");
    System.out.println(str6 + 25 + "岁了!");
  1. 获取字符串的长度
//  值得注意的是,如果字符串中有空格,每一个空格也算作一个长度
    int strLength = str6.length();
    System.out.println(strLength);
  1. 获取指定字符的索引位置
//  有两个方法可以获取字符的索引,indexOf()和lastIndexOf()
    String str7 = new String("haha,very interesting.");
    //  indexOf()方法取得第一次出现某个字符的位置
    int firstIndex = str7.indexOf('v');
    System.out.println("在str7中,字符‘V’第一次出现的位置索引为:" + firstIndex);
    int lastIndex = str7.lastIndexOf('t');
    System.out.println("在str7中,字符‘t’最后一次出现的位置索引为:" + lastIndex);
    //  如果被搜索的字符串中没有这个字符,那么返回-1
    int SearchIndex = str7.indexOf('b');
    System.out.println(SearchIndex);
  1. 获取指定索引位置上的字符 charAt()
//  注意索引的大小,绝对不能大于字符串的长度-1,如果大于长度会报java.lang.StringIndexOutOfBoundsException异常
    String str8 = new String("that's easy");
    System.out.println(str8.charAt(4));
  1. 除去字符串的空格,2种方法,一种是除去字符串前部和尾部的空格,另一种是除去字符串中全部的空格
         String str9 = " I'm fine.    ";
     // 除去前部和尾部的空格      str.trim();
    System.out.println(str9.trim());
    //  除去字符串中所有的空格  
    //  StringTokenizer(String str, String delim) str表示要除去空格的字符串,delim表示从str中取出的字符
    StringTokenizer st = new StringTokenizer(str9, " ");
    StringBuffer sb = new StringBuffer();   //  定义字符串缓存对象
    int i = 1;
    while(st.hasMoreTokens()){
        i++;
        sb.append(st.nextToken());  //  向字符串生成器中追加内容
    }
    System.out.println("去掉所有空格后的str9:" + sb.toString());
    //  replaceAll()
    String str10 = new String(" jk  fld jkfd jfk     jsdf");
    str10 = str10.replaceAll(" ", "");
    System.out.println(str10);
  1. 替换字符串
//  用一个新的字符串替换原来字符串的指定的子字符串 str.replace(String regex, String replacement)
    String s = new String("bad bad study");
    String s2 = s.replace("bad", "good");
    System.out.println(s2); 
    
    //  如果只想替换第一个匹配的子字符串
    String s3 = s.replaceFirst("bad", "good");
    System.out.println(s3); 
    //  假如有要替换的字符串在原字符串有多个,可以使用for循环执行str.replaceFirst(strold, strnew);
  1. 判断字符串是否相等
//  2中方法,equals() 和 equalsIgnoreCase()
    //  equals() 严格区分大小写,在此情况下仍有相同的字符和长度时,结果为true,否则为false。
    String s4 = new String("nice");
    boolean result = s4.equals("nice");
    System.out.println(result);

        //  equalsIgnoreCase()  在忽略大小写的情况下,如果仍有相同的字符和长度时,结果为true,否则为false。
    String s5 = new String("NICE");
    boolean result2 = s5.equalsIgnoreCase(s4);
    System.out.println(result2);
    //  ==在比较字符串时,比较的是内存位置,不建议使用。在数值型中可以使用。 
  1. 判断字符串是不是以指定的内容开始或者结尾
//  判断字符串是不是以 "abc" 开头
    String s6 = new String("abcqweriop");
    System.out.println(s6 + "是否以abc开头的字符串?" + s6.startsWith("abc"));        
    //  判断字符串是不是以 "op" 结尾       
    System.out.println(s6 + "是否以op结尾的字符串?" + s6.endsWith("op"));
  1. 字母大小写转换
        String s7 = new String("HfdkDRTvcC");
    //  全部转为小写
    System.out.println(s7 + "全部转换为小写字母:" + s7.toLowerCase());
    //  全部转为大写
    System.out.println(s7 + "全部转换为大写字母:" + s7.toUpperCase());
    //  以上两个方法在转换时,对字符串中的数字和其他字符不做改变
  1. 分割字符串 str.split(String s);
//  用s来分割str,别把分割后的结果返回一个字符串数组
    String s8 = new String("qwe,rty,uio,p[]");
    String[] sArr = s8.split(",");
    for (String ss : sArr) {
        System.out.print(ss);
    }
    System.out.println();
    //  split()的另外一种重载
    //  str.split(String sign, int limit); sign为分隔符,limit为拆分的份数
    //  例如,分割为2份,只去掉一个‘,’。分割为3份,去掉2个‘,’
    String[] strLimit = s8.split(",", 2);
    for (String ss : strLimit) {
        System.out.print(ss);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345

推荐阅读更多精彩内容