首页 > 编程语言 >Java 基础篇day06

Java 基础篇day06

时间:2023-11-04 21:11:56浏览次数:38  
标签:Java String name 基础 System day06 字符串 println out

String
字符串,可以用来创建对象封装字符串数据,并对其进行处理

创建字符串的方式

点击查看代码

//String 创建对象封装字符串数据的方式
Java程序中的所有字符串文字都为此类的对象
1.简单的方案
String name="xiaohei";
2.方式二:调用String类提供的构造器初始化字符串对象,封装数据
String s1=new String(); //" "
3.String s2 = new String("黑马");
System.out.println(s2);


//可以基于字符数组创建字符串对象
char[] chars  ={a,b.c.'我','爱;'中','国'};
String s3 = new String(chars);
System.out.println(s3);

//可以基于字节数组创建字符对象
byte[] bytes={97,98,99,'a','b','c'};
String s4 = new String(bytes);
     System.out.println(s4);

String使用时的注意事项?
String对象的内容不可改变,即被称为不可变字符串对象
//1.String字符串对象是不可变对象;

点击查看代码
  String name = "黑马";
        name += "程序员";
        name += "6666";
        System.out.println(name);//黑马程序员
//字符串对象是不可变的,定义时,在栈内存中的String name指向堆内存常量池中的”黑马“,在进行name+=程序员的时候,先在字符串常量池中产生新的"程序员" //然后在堆内存中进行拼接,产生新的对象 //总结 每次试图改变字符串对象实际上是新产生了新的字符串对象了,变量每次都是指向了新的字符串对象,之前字符串对象的内容确实是没有改变的,因此说String的对象是不可变的
点击查看代码
String s1 = "abc";
        String s2 = "abc";
        System.out.println(s1 == s2);//true

//以" "创建字符串时,先在堆内存的常量池中创建字符串常量,下一次创建相同的变量时,地址会指向之前常量池中字符串常量
//== 比较的是两者的地址是否相同

点击查看代码
char[] chs = {'a', 'b', 'c'};
        String t1 = new String(chs);
        String t2 = new String(chs);
        System.out.println(t1);
        System.out.println(t2);
        System.out.println(t1 == t2);//false

//==比较的是地址值是否相同
//每次在进行new创建对象的时候会在堆内存中创建新的变量。所以地址值不同

点击查看代码
   String n1 = "abc";
        String n2 = "a" + "b" + "c";
        System.out.println(n1 == n2);
        //true
        //Java的内存改良机制

String提供的操作字符串数据的常用方法

String name = "abab黑马66";

    //1.获取字符串的长度(字符个数)
  System.out.println(name.length());
    //2.提取字符串中某个索引位置出的字符
    char c = name.charAt(2);
    System.out.println(c); //a

    for (int i = 0; i < name.length(); i++) {
        System.out.print(name.charAt(i));
    }
    //3.把字符串转换成字符数组,在进行遍历
    System.out.println("-----------");
    char[] charArray = name.toCharArray();
    for (int i = 0; i < charArray.length; i++) {
        System.out.println(charArray[i]);
    }


    //4.equals:判断字符串内容,内容一样就返回true(重点)
    String s1 = new String("abc");
    String s2 = new String("abc");
    System.out.println(s1 == s2);
    System.out.println(s1.equals(s2));


    //5.忽略大小写比较字符串内容
    String r1 = "aBcF23";
    String r2 = "ABCF23";
    System.out.println(r1.equals(r2)); //false
    System.out.println(r1.equalsIgnoreCase(r2)); //true

    //6.截取字符串内容(包前不包后)
    String t1 = "黑马程序员Java入门";
    String rs2 = t1.substring(5, 11);
    System.out.println(rs2);

    //7.从当前索引位置一直截取到字符串的末尾
    String rs = t1.substring(5);//从当前索引截取到末尾
    System.out.println(rs);

    //8.把字符串中的某个内容替换成新内容,并返回新的字符串对象给我们
    //敏感词
    String info = "你个死老6,打的这么垃圾,垃圾队友,等我复活再来打死这个垃圾~~~,垃圾队友,快来救我~~";
    String rs3 = info.replace("垃圾", "**").replace("死", "*");
    System.out.println(rs3);

    //9.判断字符串中是否包含某个关键字
    String t2 = "黑马程序员Java入门课";
    System.out.println("黑马");
    System.out.println("黑马2");

    //10.判断字符串是否某个字符串开头
    //startswith 判断是否什么内容开头
    //endswith 判断是否什么内容结尾
    t2.startsWith("黑马程序员");
    t2.startsWith("黑马程序员2");
    t2.endsWith("门课");
    t2.endsWith("门课2");

    //11.把字符串按照某个指定内容分割成多个字符串
    //放到一个字符串数组中返回给我们
    String info2 = "王菲,蔡徐坤,易烊千玺";
    String[] names = info2.split(",");
    for (int i = 0; i < names.length; i++) {
        System.out.println(names[i]);
    }

面向对象高级部分
static修饰成员变量,成员方法

   //1.类名.静态变量(推荐)
    Student.name = "有幻化";
    System.out.println(Student.name);

    //2.对象.静态变量(不推荐)
    Student s1 = new Student();
    s1.name = "马冬鹏";

    Student s2 = new Student();
    s2.name = "秋雅";

    System.out.println(s1.name);
    System.out.println(s2.name);
    System.out.println(Student.name);

    //3.对象.实例变量(必须的)
    s1.age = 23;
    s2.age = 18;
    System.out.println(s1.age);

标签:Java,String,name,基础,System,day06,字符串,println,out
From: https://www.cnblogs.com/yifan0820/p/17809742.html

相关文章

  • Java拾贝第十六天——其他集合类Properties
    PropertiesProperties是Map的子实现类,其定义如下publicclassPropertiesextendsHashtable<Object,Object>Hashtable是Map接口的一个子类,与Vector一样都是旧的操作类,与HashMap没什么区别。Properties是操作属性文件的一个属性操作类。属性文件中属性都是以字符串表示的键......
  • Java JDBC
    JDBC基本用法常用接口和类简介DriverManager类用于管理JDBC驱动的服务类。程序中使用该类的主要功能是获取Connection对象publicstaticsynchronizedConnectiongetConnection(Stringurl,Stringuser,Stringpass)throwsSQLException获取url对应的数据库连接C......
  • java 异常捕获
    HTTP响应主体的方式不同: a.@RestController:   1.返回的对象数据作为JSON/XML直接写入HTTP响应.   2.是@Controller+@ResponseBody组合注解.获取请求参数方式:在方法写形参获取=>适合少量的定义一个对象存储提交的字段=>适合量多的3.在方法写形参:3.1Ge......
  • # 学期2023-2024-1 20231401 《计算机基础与程序设计》第六周学习总结
    学期2023-2024-120231401《计算机基础与程序设计》第六周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第六周作业这个作业的目标自学教材:计算机科学概论第7章并完成云班课测试《......
  • 结构体的定义和基础使用
    结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,是C语言中一种重要的数据类型。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体通常用来表示类型不同但是又相关的若干数据。定义:structperson{charname[30];//姓名......
  • JavaSE(09) - 面向对象进阶
    JavaSE(09)-面向对象进阶p121static关键字static表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量.一,被static修饰的成员变量,叫做静态变量.特点:被改类所有对象共享不属于对象属于类随着类的加载而加载,优先于对象存在调用方式:类名调用(推荐)对......
  • JavaSE(10) - 面向对象进阶
    JavaSE(10)-面向对象进阶P129认识多态(polymorphism)多态就是对象的多种形态多态的前提是:1,有继承/实现关系2,有父类引用指向子类对象3,有方法重写多态的好处:使用父类型作为参数,可以接收所有子类对象,体现多态的扩展性与便利P130多态调用成员的特点调用......
  • 学JAVA用PYTHON重写day02.5
    packageday02;publicclassDemo05{/*三个数字排序*/publicstaticvoidmain(String[]args){System.out.println("三个数字排序,从大到小:");inta=2;intb=5;intc=1;intt;if(a<b){......
  • Java拾贝第十六天——集合之Queue、Stack
    Queue(队列)Queue是一种先进先出(FIFO:FirstInFirstOut)的有序集合:Queue是Collection的子接口,其定义如下publicinterfaceQueue<E>extendsCollection<E>LinkedList实现了Queue的子接口,根据多态性可以使用Queue创建LinkedList实例。Queue接口常用方法如下:方法类型......
  • 2023-2024-1 20231416 《计算机基础与程序设计》第六周学习总结
    作业信息这个作业属于哪个课程(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/homework/12754)这个作业的目标《计算机科学概论》第7章《C语言程序设计》第5章作业正文http......