Java入门12--java.lang.*

d9end

String

java.lang.string

  • 字符串是一个特殊的对象
  • 一旦初始化不可被改变

========================================
常量

String name = "xxx";
name = "abc";
//xxx是常量不可以被修改
//name是变量,可以被赋值

===========================

  • String str = “abc”
  • String str1 = new String(“abc”)
    他们之间的区别?
1个对象
 String str = "abc"
没有new关键字,abc是String pool(串池中的量),在栈区
 
两个对象
 String str1 = new String("abc")
 //str1在栈区 String在堆 abc还是在串池
 new就分配了内存空间,adb在堆区

===============================
str.length() 区的是字符的个数(中英文一致)
charAt() 提取指定位置上的字符

public class t9 {

    public static void main(String[] args){
        String str = "Hello World";
        //串长度,字符串个数
        System.out.println(str.length());
        //改变str,打印中文长度
        str = "Hello Worl中";
        System.out.println(str.length());

        //charAt(x);提取指定位置上的字符,空格也是字符
        System.out.println(str.charAt(10));
    }
}

在这里插入图片描述

for(int i = 0; i < str.length(); i ++){
            System.out.println(str.charAt(i));
        }
    }

在这里插入图片描述
===========================
tocharArray 拷贝一个字符的数组并产生新的数组,不影响原来的数组
意义在于:str在堆区,输出出来变量可能被修改
copy 一份,可以保证str不变

    public char[] toCharArray() {
        char[] var1 = new char[this.value.length];
        System.arraycopy(this.value, 0, var1, 0, this.value.length);
        return var1;
    }

===============================
indexOf 返回字符串在母字符串中的位置(索引值,开始搜索的值)

    public int indexOf(String var1, int var2) {
        return indexOf(this.value, 0, this.value.length, var1.value, 0, var1.value.length, var2);
    }
        //返回子串在母串中的位置(索引值,开始搜索的位置)
       System.out.println(str.indexOf("world",7));

在这里插入图片描述

=================================================
endWith startWith
判断是否以xx开头结尾

   public boolean startsWith(String var1) {
        return this.startsWith(var1, 0);
    }

    public boolean endsWith(String var1) {
        return this.startsWith(var1, this.value.length - var1.value.length);
    }
        System.out.println(sl.endsWith("Year"));
        System.out.println(sl.startsWith("3"));

 
=================================

Split

切割字符串
=================================

        //split切割字符串
        str = "Hello World";
        String[] strArr = str.split(" ");
        System.out.println(strArr.length);

在这里插入图片描述

================================

debug

================================
断点:调试程序的时候可以停在断点不动

F9            resume programe 恢复程序
Alt+F10       show execution point 显示执行断点
F8            Step Over 相当于eclipse的f6      跳到下一步
F7            Step Into 相当于eclipse的f5就是  进入到代码
Alt+shift+F7  Force Step Into 这个是强制进入代码
Shift+F8      Step Out  相当于eclipse的f8跳到下一个断点,也相当于eclipse的f7跳出函数
Atl+F9        Run To Cursor 运行到光标处
ctrl+shift+F9   debug运行java类
ctrl+shift+F10  正常运行java类
alt+F8          debug时选中查看值

=====================================================
String.substring() 截取子串:前包后不包
===============================

    public String substring(int var1, int var2) {
        if (var1 < 0) {
            throw new StringIndexOutOfBoundsException(var1);
        } else if (var2 > this.value.length) {
            throw new StringIndexOutOfBoundsException(var2);
        } else {
            int var3 = var2 - var1;
            if (var3 < 0) {
                throw new StringIndexOutOfBoundsException(var3);
            } else {
                return var1 == 0 && var2 == this.value.length ? this : new String(this.value, var1, var3);
            }
        }
    }
        String s2 = "hello world".substring(6,10);
        System.out.println(s2);

在这里插入图片描述
为何前包括后不包括
方便使用

str.substring(0,str.length());

====================================

常见的编码

1.asc,美国

7为表示

2.iso-8859-1

欧洲码表,一个byte的8表示

3.GB2312

简体中文 2个字节

4.GBK

中文升级版,融合更多中文

5.Unicode

国际码,包含各国文字

6.utf-8

使用3个byte表示字符

==========================

bty:String args[] 与 String[] args 没有区别,都可以执行,但推荐使用 String[] args,这样可以避免歧义和误读。

Java 中args一般存在main主类方法内,String args[ ]或者String[ ] args表示给主方法传一个字符串数组. 而args是一个字符串数组的变量名,不是关键字,是arguments的缩写,只是一个默认名,一般都习惯性照写
!

计算机中的所有字符都是用Unicode码存储的,占用两个字节

package d6;

public class t99 {
    public static void main(String[] args){
        char a = 97;
        System.out.println(a);
        a = '\uFFFF';
        System.out.println(a);
        a = 0xffff;
        System.out.println(a);

        int ii = 5;
        System.out.println(ii);
        ii = 05;
        System.out.println(ii);
        ii = 0x5;
        System.out.println(ii);

    }
}

在这里插入图片描述
-----------------------
遍历系统中所有字符

        int col = 0;
        for(int i = 0 ; i <= 0xffff ; i++){
            System.out.println((char)i);
            col ++;
            if(col >= 80 ){
                col = 0 ;
                System.out.println();
            }
        }
}}
        String str = "abc中";
        byte[] bytes = str.getBytes();

        System.out.println(bytes);
        System.out.println(Charset.defaultCharset().name());

在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oifengo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值