`
想学跑的猪
  • 浏览: 14044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

黑马程序员_字符串

阅读更多

 

 ------- android培训java培训、java基础学习技术总结、期待与您交流! ----------

    

  与字符串相关的类,有String、StringBUffer、StringBuilder。

     String类。

        1.创建String类型对象   String str=new String("abcdefghdef");

       2.下面是String类中常见的一些方法

    public class Test {  
              public static void main(String []args){  
                  String str=new String("abcdefghdef");//定义一个字符串并对其进行初始化  
                  //1.获取  
                  int len=str.length();     //获取字符串str的长度  
                  char ch=str.charAt(3);    // 获取字符串str中位置为3的字符  
                  int i1=str.indexOf('d');  //获取第一次出现字符d的位置  
                  int i2=str.indexOf("def");    //获取字符串str中第一次出现字符串def的位置  
                  int i3=str.indexOf('d', 4);    //获取字符串str中从位置4开始第一次查找到d的位置  
                  int i4=str.indexOf("def", 4);   //获取字符串str中从位置4开始第一次查找到def的位置  
          
                  //2.判断  
                  boolean b1=str.contains("def");    // 判断字符串中是否包含字符串def  
                  boolean b2=str.isEmpty();          //判断字符串是否为空  
                  boolean b3=str.startsWith("abc");   //判断是否以指定字符串开头                               //  
                  boolean b4=str.endsWith("def");       //判断是否以指定字符串结尾  
                  boolean b5=str.equals("abcdef");      //判断字符串与字符串是否相同  
                  //3.转换  
                  char[] chs=new char[]{'a','b','c','d','e'};  
                  String str1=new String(chs);           
                  str1=new String(chs,0,chs.length);   //将指定的字符数组的一部分转换成字符串  
                  char[] chs1=str1.toCharArray();      //将字符串转换成字符数组  
                  byte[] by=str1.getBytes();             //将字符串转化成字节数组  
                  //4.替换  
                  String str2=str.replace('d', 'a');    //将字符串中字符d全部替换成a  
                  //5.切割String[] split(regex);  
                  //6.截取  
                  String str3=str.substring(2,4);        //将字符串str中从2到4的字符截取并付给str3  
                  //7.转换  
                  str.toLowerCase();        //字符串中字符大写转换为小写  
                  str.toUpperCase();        //字符串中字符小写转换为大写  
                  str.trim();               //去除字符串两端的空格  
                  str.compareTo(str1);       //对两个字符串按顺序进行自然比较  
               }  
    }  

 
           3.在程序中只要是用双引号括起来的的都是String类型的对象,String类是final类,String类对象一旦被创建,对象值是不可变的。对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.

 

      

   StringBuffer:是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
   它只能通过构造函数来建立,
    StringBuffer sb = new StringBuffer();
    note:不能通过付值符号对他进行付值.
    sb = "welcome to here!";//error
   对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer
   中付值的时候可以通过它的append方法.
   sb.append("hello");

   字符串连接操作中StringBuffer的效率要比String高:

  String str = new String("welcome to ");
  str += "here";
  的处理步骤实际上是通过建立一个StringBuffer,然后调用append(),最后
  再将StringBuffer toString();
  这样的话String的连接操作就比StringBuffer多出了一些附加操作,当然效率上要打折扣.

   并且由于String 对象是不可变对象,每次操作Sting 都会重新建立新的对象来保存新的值.
  这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的.
 StringBuffer 和StringBuilder的区别:
    java.lang.StringBuffer线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。
    StringBuilder。与该类相比,通常应该优先使用 java.lang.StringBuilder类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。
2
6
分享到:
评论

相关推荐

    黑马程序员基础测试题答案

    1、 编写一个函数,函数内输出一个字符串,并在主函数内调用它。 2、 编写程序计算12+22+32+....+1002的和. 3、 以下代码哪个是正确的?为什么? a. byte b = 1 + 1; b. byte b = 1; b = b + 1; c. byte b = 1;...

    黑马程序员入学测试题详解

    8、 编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。 9、 写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋...

    Java字符串连接原理

    本文主要参考黑马程序员的Java面试宝典上的内容 我们都知道,在Java中字符串可以用+连接,也可以使用StringBuilder或StringBuffer连接。 String str = abc+xyz; 那么这几种方式由什么区别呢。当然你可能会知道以下...

    JAVA-面向对象基础-字符串-集合

    观看黑马程序员Java零基础视频教学,从60P方法开始总结的知识集合,请使用Xmind打开,如果需要学习请配合视频打开:https://www.bilibili.com/video/BV17F411T7Ao

    黑马入学基础测试

    服务器接收客户端发送的字符串 反转之后发回客户端 客户端接收并打印 ">黑马程序员训练营基础测试题目 为什么需要配置path 什么时候需要classpath 什么情况下适合用UDP协议 什么情况下适合用TCP协议 编程计算3乘8...

    PHP 基础实例教程(PHP网页实例版)

    PHP 改变字符串中字母的大小写 PHP 处理特殊字符 访问表单变量 PHP 表单变量(POST方法) PHP 表单变量(GET方法) PHP 字符串的连接 PHP heredoc语法 PHP 变量 PHP 变量的名称要求 给 PHP 变量赋值 PHP 变量类型 PHP ...

    黑马程序员 C#运算符

    C#可以分为一下几类:算数运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、条件运算符、其他运算符。  1、算数运算符 + – * / % 加、减、乘、除、取余  2、赋值运算符 = ,+=, ...  字符串连接符+

    黑马入学考试试题

    黑马程序员训练营入学考试题 1、方法中的内部类能不能访问方法中的局部变量,为什么? 2、编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。 ...

    Python学习 | 一个JAVA程序员两天的Python入门笔记

    文章目录vlog正文入门基础注释算数运算符及优先级程序执行原理变量概念和定义方式变量的命名变量的输入和输出数据类型数值型非数值型列表元组列表与元组的互相转换字典字符串在Python中所有非数字型变量都支持的特点...

Global site tag (gtag.js) - Google Analytics