java中的string类和ArrayList常用方法

本文介绍了Java中String类和ArrayList集合的常用方法,包括String类的长度获取、转换为int、查找字符、分割字符串、比较引用以及ArrayList的泛型、添加、获取、删除元素等操作。并提供了示例代码,如使用Scanner和Random类交互及生成随机数。同时,文章讨论了如何实现游戏中的脏话屏蔽功能,并给出练习题:根据身份证获取出生年月日、生日、年龄和性别。

Java中String类和ArrayList集合常用方法

String类常用方法

获取字符串的长度

方法很简单,很多数组都是使用这个方法来遍历数组中的元素,直接上代码:

//获取字符串的长度
public static void main(String[] args) {
        String str="helloWord";
        int length=str.length
        System.out.println(length);//9
    }
​

String转换成int类型的方式

public static void main(String[] args) {
        int age=65;
        int num=20;
        String str1=age+"";//将int转换成string
        System.out.println(str1-name);//报错
    }

代码中str1-25输出报错,原因就是str1类型和name类型不一样,编译器就会报错,其主要原因就是String str1=age+"";已经将int类型的数据转换成字符串String类型;

建议:双引号的位置放在最后面。

获取字符串中第一次出现的字符

说多了都是些花里胡哨的东西,直接上代码

public static void main(String[] args) {
        String str="helloWord";
        System.out.println(str.indexOf("oWo"));//4
    }

上述代码定义了一个String类型的字符串str="helloword",咱们要读取字符串oWo第一次出现的下标,如果字符串中没有oWo,则返回一个 -1 ,如果字符串中出现oWo则返回oWo第一次出现的索引。上述代码中包含了oWo,oWo第一次出现的位置为4

注意:Java中严格区分大小写,下标(索引)的开始值为0(所有的下标(索引)的开始值都是0)


将字符串中的数据分割成字符串数组String[]

public static void main(String[] args) {
        String str="张无忌,张翠山,张三丰";
        char[] arrays1=str.split(",");
        for(int i=0;i<arrays1.length;i++){
            System.out.println(arrays1[i]);
        }
    }
//输出:   张无忌
//        张翠山
//        张三丰

使用String类中的split();方法就比如上述代码中,String str="张无忌,张翠山,张三丰";要把这个字符串分割成字符串数组,只需要把逗号传入的split(",")方法中即可。这里需要注意的是:字符串中的逗号如果是中文的方法中的逗号必须要和字符串中的逗号一致,如果打错程序还是会原封不动的输出[张无忌,张翠山,张三丰]


比较两个引用类型是否为true

例子:好比你在某多平台上登录自己的账号

public static void main(String[] args) {
        //模拟用户输入的数据
        String userName="张三";
        String userPassword="123";
        //获取数据库的的数据
        String nameDB="张三";
        String passwordDB="123";
        //比较
        if(userName.equals(nameDB) && userPassword.equals(passwordDB)){
            System.out.println("登录成功");
        }else{
            System.out.println("登录失败");
        }
    }

使用equals()方法可以比较两个引用类型是否为true,如果你输入的数据与数据库中的数据不一样,控制台就会打印登录失败,反之登录成功,当然用户输入的数据是模拟的,等将来学习了javaweb,你就能自行开发网站,这些底层的东西也要慢慢积累,不要打马虎眼。。我可能说的不够详细。

注意:引用数据类型和基本数据类型是不能进行比较的


使用下标获取指定的值

public static void main(String[] args) {
        String str="helloWord";
        System.out.println(str.charAt(5));//W
    }

String类中定义了一个返回值char,方法名 charAt(int index)这样的方法,它可以通过字符串的索引获取到值,就比如上代码中定义了一个String str="helloWord";,如果你想获取到其中的某一个字符就可以使用charAt(int index)方法获取到你想要的字符。helloWord中下标(索引)5的值就是大写的W


如何实现游戏中的脏话屏蔽***

大家都玩过英雄联盟(LOL)吧,当队友抢了本该属于你的人头时,当然你和的你队友不认识,这个时是不是键盘侠该上线了呢。当然如果你骂人没有技巧,出现的就是***,其中的原理就是下面要说String中的replace()方法,直接上代码:

public static void main(String[] args) {
        String str="你TMD的,你会不会玩";
        System.out.println(str.replace("TMD", "***"));
    }
//输出:你***的,你会不会玩

该方法replace(char oldChar, char newChar)实现了游戏中的脏话过滤;,说白了就是把前面的参数(oldChar)替换成后面的参数(newChar)替换后的参数就是新的,该方法中有两个参数replace(char oldChar, char newChar);参数oldChar就是你要屏蔽的脏话,newChar这就是把脏话屏蔽后改成什么字符串你可以改成(???,@@@,可爱)等等...

注意:String定义变量后它的值是不发生改变的。只要是双引号"abc"定义的值都是存在内存堆中的常量池中,变的是地址值。其本身的str是不可能发生改变的。

public static void main(String[] args) {
        String str="abc";
        System.out.println(str);//输出abc
        str="java"
        System.out.println(str);//输出java
    }

扩展两个常用类Scanner和Random,

获取当前年份类

SimpleDateFormat slf=new SimpleDateFormat("yyyy");
Date date=new Date();
String time=slf.format(date);

Scanner

常用的方法:

  • nextLine(),返回值String,可以输入字符串

  • nextInt(),返回值为int,只能输入整数,范围-2147483648 到 2147483648

Scanner就是和用户交互时使用的,简单的来说就是键盘输入

java.util.Scanner//导包
public static void main(String[] ages){
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入身份证");
    long ID=sc.nextLong();
    System.out.pringln("你输入的身份证为:"+ID);
}

使用方法首先需要导包,因为Scanner类不是lang包下的。创建对象时,构造方法里面需要传入一个参数System.in。对象创建成功后就可以直接使用对象名调用其中的方法,来个输入语句提醒用户该输入什么,System.out.println("请输入身份证");,下一步使用long类型去接收用户输入的身份证,这里需要注意的是接收数据的类型要和scanner调用的方法类型一样,不然就会报错,最后把用户输入的身份证打印出来,把字符串拼接一下System.out.pringln("你输入的身份证为:"+ID);

Random

random随机数,也就是说,使用该类可以任意获取随机数,范围也可以自定义

java.util.random

public static void main(String[] ages){
    Random r=new Random();
    int random=r.nextInt(100);
    System.out.println(random);
}

当然第一步还是需要导包,java.util.random,创建对象Random r=new Random();使用对象名去调用该类中的nextIntt()方法,该方法所取到的随机数就是int类型的取值范围内的整数,当然你也可以自定义随机数的范围,就在nextInt(100)中定义取值范围,就比如我在参数列表中填了一个100,其取值范围便是[0-100)这里的0-100指的是包含0,不包含100,真实的取值范围0-99,如果你想你程序的取值范围为1-100,则在该方法后面加一即可,nextInt(100)+1;

上述程序运行的结果就是0-99的随机数。

这里需要注意的是:取值范围用数学的方式就是 [0,100) ,包含0,不包含100。


ArrayList<E>集合的常用方法

java中的泛型<E>

首先学习Arraylist集合前先学习泛型,所谓的泛型就是指广泛的类型,就是规范了集合Arraylist集合中的数据类型必须要统一。泛型中不能写入基本数据类型,只能填引用数据类型。如果要填写数据类型就写该数据类型的包装类。基本数据类型的包装类除了int和char其他的都是大写的字母开头。

基本数据类型的包装类

  • int的包装类Integer

  • char的包装类是Character

  • 其他的六个基本数据类型的包装类 都是大写字母开:头比如double的包装类就是Double。

Arraylist<E>集合

ArrayList的创建

创建Arraylist<E>集合第一步还是需要导包,当然你也可以先把集合创建了编辑器自己会帮你把包导入

import java.utli.Arraylist;
public static void main(String[] ages){
    ArrayList<String> list=new ArrayList<>();//jdk1.7+的版本后面的尖括号不需要写类型空着但是尖括号必须要写
}

这里需要注意的是ArrayList<>();里面的尖括号可以不写引用数据类型但是在保证你的jdk版本大于或等于1.7,否则还是把尖括号里的内容填写的和前面的一模一样。

AarrayList集合中添加元素

要网集合中添加元素使用add();方法,使用对象名调用add()方法;

import java.utli.Arraylist;
public static void main(String[] ages){
    ArrayList<String> list=new ArrayList<>();
    System.out.println(list);//打印输出  []
    list.add("刘亦菲");
    System.out.println(list);//打印输出  [刘亦菲]
}

这个方法的返回值是一个boolean类型的,意思就是是否添加成功,成功返回true,反之返回false;一般都会添加成功,所以就不用boolean去接收返回值。最后直接答应对象名输出的就是[刘亦菲]

获取ArrayList集合中的元素

有两种方法可以获取到ArrayList集合中的元素

1.直接打印ArrayList的对象名。(这种方法只好查看集合中的元素,想要得到集合中的某个元素还是得需要使用for循环)

import java.utli.Arraylist;
public static void main(String[] ages){
    ArrayList<String> list=new ArrayList<>();
    list.add("刘亦菲");
    list.add("张翰");
    list.add("郑爽");
    System.out.println(list);//打印输出  [刘亦菲,张翰,郑爽]
}

2.使用for循环获取集合下标,获取集合中的元素

import java.utli.Arraylist;
public static void main(String[] ages){
    ArrayList<String> list=new ArrayList<>();
    list.add("刘亦菲");
    list.add("张翰");
    list.add("郑爽");
   	for(int i=0;i<list.size();i++){
        System.out.println(list.get(i));
    }
}
//输出:
//	刘亦菲
//  张翰
//  郑爽

这里需要用到的一个方法是get(int index);就是获取集合元素的下标来获取到集合的元素,还有size()这个方法就是用来获取集合的大小,和String类中的length一样,需要注意的是size();是一个方法,有括号的。String类中的length是没有括号的。

删除集合中的某个元素

使用remove()方法,把需要删除的元素的下标放到该方法中即可删除

import java.utli.Arraylist;
public static void main(String[] ages){
    ArrayList<String> list=new ArrayList<>();
    list.add("刘亦菲");
    list.add("张翰");
    list.add("郑爽");
   	list.remove(0);
}

如果要删除刘亦菲,首先要知道刘亦菲在集合中的下标是多少,很明显下标为0;只需要调用list.remove(0)方法即可;

注意:下标不管在什么时候什么地方出现都是从0开始;


使用上述所学的知识,做一个练习题,

题目:输入一个身份证获得出生年月日,生日,年龄,性别

public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入你的身份证:");
		long numbers=sc.nextLong();
		//将long类型转换成String
		String str=String.valueOf(numbers);
		//将String类型转换成字符集数组
		String year=str.substring(6, 10);
		//将String类型转换成int
		int intTimeID = Integer.parseInt(year);
		String monthStr=str.substring(10, 12);//月
		int monthInt=Integer.parseInt(monthStr);
		String dayStr=str.substring(12, 14);//日
		int dayInt=Integer.parseInt(dayStr);
    	//得到身份证倒数第二位,判断是否为偶数,如果是偶数则为女,反之男
		int ch=str.charAt(16);
		if(ch%2==0){
			System.out.println("性别:女");
		}else{
			System.out.println("性别:男");
		}
		//获取当前年份
		SimpleDateFormat slf=new SimpleDateFormat("yyyy");
		Date date=new Date();
		String time=slf.format(date);
		//>
		//将String类型转换为int
		int intTime = Integer.parseInt(time);
		System.out.println("当前年份:"+time);
		System.out.println("出生日期:"+year+"年"+monthInt+"月"+dayInt+"日");
		int age=intTime-intTimeID;
		System.out.println("今年:"+age+"岁");
	}

上述代码没有完善,如果有需要可以自行修改;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值