##用代码玩游戏的快乐,再小的程序也能找快乐5月21日

randomn类

randomn类用于生成随机数

方法分为三步:1,导包       2,new randomn      nextInt();里面可以限制随机数大小,最小为0

public class DemoGuess {
    public static void main(String[] args) {
        Random r = new Random();
        int i = r.nextInt(100)+1;
        Scanner sc = new Scanner(System.in);

        while(true){
            System.out.println("请输入猜数:");
            int i1 = sc.nextInt();
            if(i1>i){
                System.out.println("大了");
            }else if(i1<i){
                System.out.println("小了");
            }else{
                System.out.println("恭喜你");
                break;
            }
        }
        System.out.println("游戏结束");
    }
}

这个就是我们的猜数游戏,就是利用随机数的生成

今天还有一个很重要的知识点,可以说是我们的重难点:String

String类位于java.util.lang包下

它的方法只要有一下几点:

1,比较字符串

2,字符串的提取

3,搜索字符串

4,提取字符串

5,大小写转换

下面我们先来说第一个方法

说到String类,那么大家都知道这个是字符串,而且字符串是一个常量,已经生成,不容修改

那么我们总结一下它的特点:常量(不变性) 共享性  等效性

一:字符串的生成:

String st="wo love you";

这个就是我们最简单的字符串的生成方法

那么有没有其他方法呢?

public class DemoString {
    public static void main(String[] args) {
        //空参构造
        String s = new String();
        System.out.println("s="+s);
        //字符有参构造
        char[] charString={'a','b','c'};
        String s1 = new String(charString);
        System.out.println(s1);
        byte[] byteString={65,66,67};
        String s2 = new String(byteString);
        System.out.println(s2);
        byte[] byteString01={97,98,99};
        String s3 = new String(byteString01);
        System.out.println(s3);

    }
}

总结下:

字符串的生成可以通过双引号引起来的形式,也可以通过将字符串拆分成字符数组,将字符串转成字节数组

同时字符数组也可以转成字符串,字节数组也可以转成字符串

二:比较字符串

以前我们都比较过基本数据类型,他们是通过==/!=进行比较,那么我们的字符串是通过什么呢?equals

注意:

两个字符串比较,常量在前,变量在括号里面,建议这样,如果常量为空(null),那么比较的时候,会显示报错,空指针,下面我们看下案例:

//新建两个字符串
        String str1="rui";
        String str2="rui";
        //字符数组
        char[] str3={'r','u','i'};
        String s = new String(str3);
        //比较
        System.out.println(str1.equals(str2));
        System.out.println(str2.equals(s));

     String str5=null;
        System.out.println(str5.equals(str1));
这个结果就是  Exception in thread "main" java.lang.NullPointerException

那么如果有一个字符串是小写字母的,有一个是大写字母的,他们能比较么?有什么区别么?

 String str4="RUI";
        System.out.println(str1.equalsIgnoreCase(str4));
结果为true

比较大写字母字符串和小写字母字符串的时候用到equalsIgnoreCase方法

可以不分区大小写,但是要区分英文大小写

三:搜索字符串

charAt();返回指定索引的char值

indexof();返回字符第一次出现的位置

public class Demo01 {
public static void main(String[] args) {
String str1="I love you";
String str4="abc";
String str2="wo shi shei";
char [] str3={'a','b','c'};
char c = str1.charAt(3);
System.out.println(c);
int s = str2.indexOf("s");
System.out.println(s);
}
}

subString();字符串的截取

      String str6="wo shi liurui";
        String substring = str6.substring(3);
        System.out.println(substring);
        String substring1 = str6.substring(2, 8);
        System.out.println(substring1);

一个是直接索引的位置开始到字符串的尾部

另一种是从指定索引位置截取,但是截取的尾部不包括

四:提取字符串

replace();替换

split();分割字符串

concat();拼接

public class Demo01 {
    public static void main(String[] args) {
        String str1="I love you";
        String str4="abc";
        String str2="wo shi shei";
        char [] str3={'a','b','c'};
//        String r = str2.replace("i", "fuckyou");
//        System.out.println(r);
        String[] s = str2.split(" ");
        for(String a:s){
            System.out.println(a);
        }
        String c = str2.concat(str1);
        System.out.println(c);
    }
}
原文地址:https://www.cnblogs.com/liurui-bk517/p/10901911.html