Java字符串的注意事项

Java

环境变量:

为了让javac和java两个命令在任意路径下都可以使用

文件名与类名相同(编译用的是文件名,运行用的是类名)

包:

就是文件夹作用,区分同名文件,分类存储,起名字的时候都小写,有单级包和多级包

字符串的定义:

1,存储空间消耗者

2,环保主义者(最常用的)

3,字母崇拜者

4,业余爱好者

字符串的访问:

charAt(index)方法可以访问一个字符串中的某个字符

字符串的拆分:

单刃斧:substring(parameter1)方法     截取前面一部分将后面的剩下

双刃斧:substring(parameter1,    parameter2)方法    斧头返回值是一个字符串

剥离机:split(parameter1)参数是分割字符串的    “依据“    返回值是一个字符串数组

字符和字符串的运算:

” + “可以用在字符和字符串中,另外还可以使用concat()方法,是” + “的一种替换形式,但是他每次拼接都会通过构造函数产生一个新的字符串对象,因此不建议使用。

public static void main(String args[]) {
        String stringTry = "12"+12+"12"+(9+2)+(7-7);
        System.out.println(stringTry);
    } 
        //运行结果:121212110
另外:

toLowerCase()转换为小写

toUpperCase()转换为大写

字符串的比较:

" == "是比较地址,不是比较字符串的值

1,比较两个字符串是否相等用equals()方法

2,部分字符串的比较

(1)endsWith()用来比较后缀是否相同

startsWith()前缀

(2) regionMatches(pm1,    pm2,    pm3,    pm4)方法比较是否包含特定的字符串.

(pm1是目标字符串中的起始,pm2是参与比较的字符串,pm3是参与比较的起始,pm4是比较的个数,该方法还有一个布尔值参数,如果布尔值为true,则在比较中忽略大小写)

public static void main(String args[]) {
        if("Schroedinger".equals(args[0])) {     //这是一个小技巧哦哦哦
            System.out.println("Hallo");
        }
    }
字符串的查找和替换操作:
查找

indexOf()一个参数时:返回指定的字符或字符串在目标字符串中首次出现的位置

两个参数时:pm1是指定字符,pm2是从目标字符的那个位置开始

lastIndexOf()从目标字符串的右边开始查找

查找:若找到则返回该字符的位置,若没有找到则返回值-1

contains():查找目标字符串是否含有指定的字符或者字符串(返回值为布尔类型)

替换

replace(pm1,    pm2)    pm1是匹配字符,pm2是替换字符

replaceFirst()替换第一个与指定字符或者字符串匹配的字符或者字符串

replaceAll()所有

可以被改变的字符串:

StringBuffer 和 StringBuilder 类(区别:线程问题,目前不用理解)后者速度快目前

public static void main(String args[]) {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("String");
        stringBuilder.append("-");
        stringBuilder.append("Bilder");
        stringBuilder.insert(8, "u");
        System.out.println(stringBuilder.toString());
    }
字符串的删除,替换以及镜像:

.delete(parameter1,    parameter2)参数2可以省略,参数1是起始位置,参数2是终止位置,当只有一个参数的时候,只删除那个位置的字符

.replace(parameter1,    parameter2,    parameter3)参数1是起始位置,参数2是终止位置,参数3是替换的字符

.reverse()没有参数,只是将字符串镜像(翻转)

注意:

在一个循环的内部使用StringBuilder比使用 + 运算符更好,在循环外部可以使用 + 运算符,因为编译器此时会自动生成StringBuilder。concat最不行,最不节省空间。

public static void main(String args[]) {
        StringBuilder textMitStringBuilder = new StringBuilder(1377);
        for(int i = 1; i <= 99; ++i) {
            textMitStringBuilder.append("Luftballon "+i+"\n");
        }
        System.out.println(textMitStringBuilder.toString());
    }
对象,类

->类里可以包含一个main方法和静态方法(类方法)

->方法的静态性

->单进单出

->方法的重构,重构时应避免选用过多的参数,(如果参数很多的话,那么就采取一种简写的形式(Varargs)可变参数)

方法的注释
/**
*方法的用途
*
*@param zahl1
*@param zahl2
*@return
*/
初始类和对象

java不仅会用到函数,还会用到对象(对象实例),这就是面向对象的编程

封装:将数据与功能相结合,用户只能通过对外开放的接口,以特定的访问方式来使用类的成员

第一种说法:

类是对象的数据类型,对象是类的一个实例。就是说,类就像是一个可以由开发人员自己定义的数据类型(类),用这个数据类型可以定义不同的变量(对象).

第二种说法:

类就像是一个模板、一个规范,对象则是按着模板所具体制造生产出来的东西.

类有它的属性,也有它的方法。

类的对象由以下两个因素组成:

数据:对象的变量、字段、属性或者特性.

函数:对象方法、方法.

用对象变量描述一个对象的特征,用对象方法描述对象的行为。

构造函数的两个特例:(内存缓存机制)

new String()

new Integer()

在一个类中,含有很多对象变量、对象方法,但这些方法目前还不能被引用或调用,现在你需要生成一个该类的对象,最好把创建过程放在一个独立的类里,通过执行新类的main()方法实现生成一个对象。含有对象变量和对象方法的类起到创建模板的作用(含有那些特征),程序起点的任务最好交给另外一个类来完成。

再次强调:对象方法在没有创建的情况下是无法被调用的,必须创建一个对象实例,然后才 能调用。

在一个类中,如果没有static关键字,也就是说,这个方法不是类方法,而是一个对象方法。

应该避免类属性的直接访问:

原因:擅自访问对象变量会导致这个类创建出无效的参数。

如何避免:最简单的方法就是把对象变量隐藏起来,将其声明成私有类型就行了。

set(设置)和get(获取)方法:(用户也想知道照相机的品牌以及猫不再可爱)

->set…()和get()…方法可以改变对象变量的值,现在对象看起来完美多了,既可以封装起来,又可以只通过方法改变对象变量的值。

->this.为了区分一个是参数名另一个是变量名,后面的是参数名,前面的是对象变量名。

->如果想获取布尔类型的对象变量值,方法名可以用 is 替换get

自动创建get和set方法:Source—> get和set

多参数的set方法:根据个人喜好选择。

更快给对象变量赋值的小窍门:

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值