栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

API基础第一天

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

API基础第一天

API基础第一天

文章目录

API基础第一天

1.String:字符串类型2.常量池3.String常用方法

(1)int length()(2)String trim():(3)indexOf()(4)String substring():(5)char charAt(int index):(6)boolean startsWith(String prefix),boolean endWith(String prefix)(7)String toUpperCase()(8)static String valueOf(primitive data type x):(9)equalsIgnoreCase(String anotherString):

1.String:字符串类型

java.lang.String使用的final修饰,不能被继承

String---------------java.lang包中
Math-----------------java.lang包中
不用import的,一般都在lang包中
class Aoo extends String{
    //String类final修饰的,不能被继承
}

字符串底层封装了字符数组以及针对字符数组的操作方法

java字符串在内存中采用Unicode编码方式,任何一个字符都对应了两个字节的编码

字符串一旦创建,对象内容永远无法改变,但字符串引用可以重新赋值

String str = "Hello";//内存中占用10个字节,可以直接赋值
char[] chs = {'H','e','l','l','o'};//Unicode编码
String str = new String("Hello");//不推荐这种赋值模式
String s1 = "123abc";
String s2 = "123abc";
System.out.println(s1 == s2);//true,s1与s2相同
s1 = s1+"!";//创建新对象并把地址赋值给s1
System.out.println(s1 == s2);//false,s1为新的对象的地址,与s2不同
 
      String s1 = "123abc";
      
      String s2 = "123"+"abc";
      System.out.println(s1 == s2);//true,s1,s2公用常量池
      String s3 = "123";
      //当字符串拼接产生的内容与常量池某内容相同时,也不会重用常量池的对象
      String s4 = s3 + "abc";//创建一个新的对象存储123abc
      System.out.println(s1 == s4);//false
2.常量池

java对字符串有一个优化措施:字符串常量池(堆中)java推荐我们使用字面量/直接量的方式来创建字符串,并且会缓存所有以字面量形式创建的字符串对象到常量池中,当使用相同的字面量再次创建字符串时会重用对象以减少内存开销,避免内存中堆积大量内容相同的字符串对象在JAVA中只有字面量才会存储在常量池中

package apiday01;

public class StringDemo {
    public static void main(String[] args){
        
        String s1 = "123abc";//常量池没有,先创建该字符串对象并存入常量池
        String s2 = "123abc";//常量池有,直接重用对象
        System.out.println(s1 == s2);//引用类型==,比较的是地址是否相同
        
    }
}

  String S1 = new String("Hello");//S1装的是new String()对象的地址
 String S2 = "Hello";//S2装的是字面量“Hello”的地址
 System.out.println(S1 ==S2);//S1与S2的地址不同
注:字符串实际开发中比较相等的需求都是比较字符串的内容,因此要用到下面的方法。
3.String常用方法 (1)int length()

获取字符串的长度(字符个数)

package apiday01;

public class LengthDemo {
    public static void main(String[] args) {
        //int length():获取字符串的长度,字符个数
        String str = "我爱java!";
        int len = str.length();
        System.out.println(len);//7

    }
}
(2)String trim():

去除当前字符串两边的空白字符

package apiday01;

public class TrimDemo {
    public static void main(String[] args) {
        //String trim():去除两边空白字符
        String str = "   Hello World   ";
        System.out.println(str);
        str = str.trim();
        System.out.println(str);

    }
}
   Hello World
Hello World 
(3)indexOf()
方法名说明
int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引
int indexOf(String str, int fromIndex)返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
int lastIndexOf(String str)检索最后一次出现给定字符串的位置
int lastIndexOf(String str, int fromIndex)返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索
package apiday01;


public class IndexOfDemo {
    public static void main(String[] args) {
    // 1.int indexOf(String str):
        String str = "thinking in java";
        int index = str.indexOf("in");
        System.out.println(index);//2
        index = str.indexOf("IN");
        System.out.println(index);//-1,当前字符串不包含此内容

    //2.int indexOf(String str, int fromIndex):
        index = str.indexOf("in",4);
        System.out.println(index); //5

    // 3.int lastIndexOf(String str):
        index = str.lastIndexOf("in");//找in最后一次出现的位置
        System.out.println(index); //9

    //4.int lastIndexOf(String str, int fromIndex)
        index = str.lastIndexOf("in",8);
        System.out.println(index);//5

    }
}

(4)String substring():
方法名说明
String substring(int beginIndex)截取当前字符串中指定范围内的字符串------一直到最后
String substring(int beginIndex, int endIndex)截取当前字符串中指定范围内的字符串-----包含start,不包含end
package apiday01;


public class SubstringDemo {
    public static void main(String[] args) {
        String str = "www.tedu.cn";
        String name = str.substring(4);
        System.out.println(name);//tedu.cn
        name = str.substring(4,8);
        System.out.println(name);//tedu
    }
}

例子:获取域名
public class SubstringDemo {
    
    public static String getName(String line){
        int index = line.indexOf(".")+1;
        int index1 = line.indexOf(".",index);
        return line.substring(index,index1);
    }
    public static void main(String[] args) {
       String name = getName("www.tedu.com.cn");
       System.out.println(name);//tedu
       String str = getName("http://www.google.com");
       System.out.println(str);//google
(5)char charAt(int index):

(返回当前字符串指定位置上的字符)返回指定索引处的 char 值。

package apiday01;


public class CharAtDemo {
    public static void main(String[] args) {
        String str = "thinking in java";
        char c = str.charAt(5);
        System.out.println(c); //i


    }
}

(6)boolean startsWith(String prefix),boolean endWith(String prefix)
package apiday01;


public class StartsWithDemo {
    public static void main(String[] args) {
        String str = "thinking in java";
        //判断str是否是以think开头的
        boolean starts = str.startsWith("think");
        System.out.println("statet" + starts);//true
        //判断str是否是以java结尾的
        boolean end = str.endsWith("java");
        System.out.println("statet" + end);//true
        //测试此字符串从指定索引开始的子字符串是否以指定前缀开始。
        boolean mid = str.startsWith("think",0);
        System.out.println("statet"+mid);//true
        mid = str.startsWith("think",1);
        System.out.println("statet"+mid);//false


    }
}

(7)String toUpperCase()
方法名说明
String toUpperCase()将当前字符串中的英文部分全部转换为大写
String toLowerCase()将当前字符串中的英文部分全部转换为小写
package apiday01;


public class ToUpperCaseDemo {
    public static void main(String[] args) {
        //转大写
        String str = "我爱java";
        String upper = str.toUpperCase();
        System.out.println(upper);//我爱JAVA
        //转小写
        String lower = str.toLowerCase();
        System.out.println(lower);//我爱java


    }
}

(8)static String valueOf(primitive data type x):

将其他数据类型转为为字符串类型。

package apiday01;


public class ValueOfDemo {
    public static void main(String[] args) {
        int a = 123;
        //将int型变量a转换为String类型并赋值给str1
        String str  = String.valueOf(a);
        System.out.println(str);
        double s = 123.456;
        //将double型变量转换为String类型并赋值给str1
        String str1 = String.valueOf(s);
        System.out.println(str1);

    }
}

结论:互联网上真正使用的并不是unicode,真正传输的是UTF这种带长度信息的编码。拿到UTF数据后再把UTF编码转换为Unicode编码。

(9)equalsIgnoreCase(String anotherString):

将此 String 与另一个 String 比较,不考虑大小写。

package apiday01;

import java.util.Locale;
import java.util.Random;
import java.util.Scanner;


public class Extend {
    public static void main(String[] args) {
        String str = "qwertyuiop123456789asdfghjkl987654321ZXCVBNMASDF";
        Random random = new Random();
        String code = "";
        for (int i = 0; i < 4; i++) {
            int index = random.nextInt(str.length());
            char c = str.charAt(index);
            code  += c;

        }
        System.out.println(code);
        System.out.println("请输入验证码:");
        Scanner scanner = new Scanner(System.in);
        String answer = scanner.nextLine();


        if(code.equalsIgnoreCase(answer)){//用于比较字符串是否相同,忽视大小写
            System.out.println("输入正确");
        }
        else {
            System.out.println("输入错误");
        }
    }

}







转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/710971.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号