车险保险网站网站建设与设计的心得体会
一、String
关于String的概述和使用方法在上一篇关于API(上)已经详细的讲述了,大家可以在上一篇进行浏览与学习。
1、String的注意事项
- String对象的内容不可改变,被称为不可变字符串对象。
结论:每次试图改变字符串对象实际上是新产生了新的字符串对象了,变量每次都是指向新的字符串对象,之前字符串对象的内容确实是没有改变的,因此说String的对象是不可变的。
-
- 只要是以“…”方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份;
- 但通过new方法创建字符串对象,每new一次都会产生一个新的对象放在堆内存中。
2、String的应用案例
例子:完成用户登录
需求:系统正确的登录名和密码是:admin/123456,请在控制台开发一个登录界面,接收用户输入的登录名和密码,判断用户是否登录成功,登录成功后展示:“欢迎进入系统!”,即可停止程序。(注意:要求最多给用户三次登录机会)
代码如下:
package com.api.code.String;import java.util.*;/*** user:liaoxinyue**/
public class Login {public static void main ( String[] args ) {//目标:实现用户登录//登录:一个独立的功能(独立功能独立方法)Scanner scanner = new Scanner ( System.in );for ( int i = 0 ; i < 3 ; i++ ) {System.out.println ( "第" + ( i + 1 ) + "登录" );System.out.println ( "请你输入登录账户" );String name = scanner.next ( );System.out.println ( "请输入登录密码" );String pwd = scanner.next ( );String reasult = login ( name , pwd );if ( "success".equals ( reasult ) ) {System.out.println ( "登录成功,欢迎进入系统" );break;} else {System.out.println ( reasult );}}}public static String login ( String username , String pwd ) {String name = "admin";String password = "123456";if ( name.equals ( username ) ) {if ( password.equals ( pwd ) ) {return "success";} else {return "密码输入错误";}} else {return "账户输入错误";}}
}
运行结果如下:
3、使用String来开发验证码
需求:实现随机验证码,验证码的每位可能是大小写字母、数字。
分析:
- 设计一个方法,该方法接收一个整型参数,最终要返回对应位数的随机验证码。
代码如下:
package com.api.code.String;import java.util.*;/*** user:liaoxinyue**/
public class StringYanzhengma {public static void main ( String[] args ) {System.out.println ( create ( 5 ) );System.out.println ( create ( 8 ) );}private static String create ( int n) {String code = "";//记住验证码String data = "abrcdEF2G13HI4JKL56efRij78STklmUVWno9XYpqZstuOPNvwMghQxyz";//随机字符Random random=new Random ( );for ( int i = 0 ; i < n ; i++ ) {//2、随机产生一个索引int index=random.nextInt (data.length ());//3、提取对应索引位置处的字符char c=data.charAt ( index );//4、拼接code连接code+=c;}return code;}
}
运行结果如下:
二、ArrayList
1、什么是集合?
集合是一种容器,用来装数据的,类似于数组。
数组与集合的区别?
- 数组定义完成并启动后,长度就固定了。
- 集合大小可变,开发中用的更多。
2、ArrayList如何使用
ArrayList< E >是用的最多,最常见的集合。ArrayList是泛型类,可以约束存储的数据类型。
创建对象,调用无参数构造器初始化对象:public ArrayList();
调用相应的增删改查方法。
3、ArrayList提供了那些常用的方法呢?
代码如下:
package com.api.code.ArrayList;import java.util.*;/*** user:liaoxinyue**/
public class ArrayListDemo {public static void main ( String[] args ) {
// 目标:掌握ArrayList集合的创建和使用
// 7、创建ArrayList集合的对象。(一个容器,大小可变,数据可以重复,有索引)ArrayList arrayList = new ArrayList ( );arrayList.add ( "java" );arrayList.add ( "java" );arrayList.add ( 100 );arrayList.add ( 90 );arrayList.add ( "林徽因" );System.out.println ( arrayList );System.out.println ( "=================================" );
// 1、插入数组arrayList.add ( 1 , "鹿晗" );System.out.println ( arrayList );
// 2、根据索引获取数据,
// arrayList.indexOf ( 5 );arrayList.get ( 5 );System.out.println ( arrayList.get ( 5 ) );System.out.println ( "=================================" );
// 3、获取集合大小(元素个数)System.out.println ( arrayList.size ( ) );System.out.println ( arrayList );System.out.println ( "=================================" );// 4、根据索引删除数据,返回被删除的数据。
// arrayList.remove ( 3 );//返回删除后的该位置的数据System.out.println ( arrayList.remove ( 3 ) );System.out.println ( "=================================" );// 5、直接删除数据,返回真假
// arrayList.remove ( "java" );System.out.println ( arrayList.remove ( "java" ) );System.out.println ( "=================================" );// 6、修改某个索引位置处的数据,返回修改前的数据System.out.println ( arrayList.set ( 1 , "lay" ) );System.out.println ( arrayList );}
}
运行结果如下:
4、ArrayList的应用案例。
需求:现在‘加入购物车中存储了如下这些商品:Java,枸杞,黑枸杞,拖鞋。现在用户不想购买枸杞,需要批量删除,请完成该需求。
分析:
1、后台使用ArrayList表示购物车,存储这些商品名。
2、遍历集合中的数据,只要这个数据包含了枸杞,就删除它。
代码如下:
package com.api.code.ArrayList;import java.util.*;/*** user:liaoxinyue**/
public class ArrayListDemo2 {public static void main ( String[] args ) {ArrayList < String > arrayList = new ArrayList ( );arrayList.add ( "java" );arrayList.add ( "枸杞" );arrayList.add ( "黑枸杞" );arrayList.add ( "拖鞋" );System.out.println ( arrayList );for ( int i = 0 ; i < arrayList.size ( ) ; i++ ) {String name = arrayList.get ( i );if ( name.contains ( "枸杞" ) ) {arrayList.remove ( i );i--;//一、删除后回退一步,才可以保证删除数据,不会漏删}}System.out.println ( arrayList );System.out.println ( "================================" );ArrayList < String > arrayList1 = new ArrayList ( );arrayList1.add ( "java" );arrayList1.add ( "枸杞" );arrayList1.add ( "黑枸杞" );arrayList1.add ( "黑枸杞" );arrayList1.add ( "黑枸杞" );arrayList1.add ( "黑枸杞" );arrayList1.add ( "拖鞋" );System.out.println ( arrayList1 );for ( int i = arrayList1.size ( ) - 1 ; i >= 0 ; i-- ) {String name = arrayList1.get ( i );if ( name.contains ( "枸杞" ) ) {arrayList1.remove ( name );}}System.out.println ( arrayList1 );}}
运行结果如下:
5、ArrayList综合案例
需求:完成菜品的上架、以及菜品信息浏览功能。
目标:使用所学的ArrayList集合结合面向对象编程实现以上2个需求。
代码如下:
自定义菜品类
package com.api.code.ArrayList;/*** user:liaoxinyue**/
public class Food {private String name;private double price;private int num;public String getName ( ) {return name;}public void setName ( String name ) {this.name = name;}public double getPrice ( ) {return price;}public void setPrice ( double price ) {this.price = price;}public int getNum ( ) {return num;}public void setNum ( int num ) {this.num = num;}public Food(){}public Food ( String name , double price , int num ) {this.name = name;this.price = price;this.num = num;}
}
自定义菜品操作类
package com.api.code.ArrayList;import java.util.*;/*** user:liaoxinyue**/
public class FoodTest {//菜品操作类private ArrayList < Food > foodArrayList = new ArrayList <> ( );Scanner sc = new Scanner ( System.in );boolean isFlag = true;public void start ( ) {while ( true ) {System.out.println ( "商家管理系统" );System.out.println ( "1、上架菜品" );System.out.println ( "2、下架菜品" );System.out.println ( "3、展示" );
// System.out.println ( "4、退出系统" );
// do {System.out.println ( "请输入你需要操作的序号" );Scanner scanner = new Scanner ( System.in );int cammend = scanner.nextInt ( );switch ( cammend ) {case 1:System.out.println ( "请输入你需要上架的菜品信息" );addFood ( );break;case 2:System.out.println ( "请输入你需要下架的菜品信息" );removeFood ( );break;case 3:showFood ( );break;default:System.out.println ( "输入错误" );}}}private void removeFood ( ) {System.out.println ( "========下架菜品==============" );showFood ( );Food food = new Food ( );System.out.println ( "请输入要下架的菜品名称" );}private void addFood ( ) {System.out.println ( "========上架菜品==============" );//每个用户上架的菜品实际为集合中新增一个对象。Food food = new Food ( );//为菜单注入数据System.out.println ( "请输入菜品名称" );String name = sc.next ( );food.setName ( name );System.out.println ( "请输入菜品价格" );double price = sc.nextDouble ( );food.setPrice ( price );System.out.println ( "请输入菜品数量" );int num = sc.nextInt ( );food.setNum ( num );foodArrayList.add ( food );System.out.println ( "======上架成功========" );System.out.println ( food.getName ( ) + "\t" + food.getPrice ( ) + "\t" + food.getNum ( ) );}public void showFood ( ) {for ( int i = 0 ; i < foodArrayList.size ( ) ; i++ ) {Food food = foodArrayList.get ( i );System.out.println ( food.getName ( ) + "\t" + food.getPrice ( ) + "\t" + food.getNum ( ) );}}
}
启动类
package com.api.code.ArrayList;/*** user:liaoxinyue**/
public class ArrayListDemo3 {public static void main ( String[] args ) {FoodTest foodTest=new FoodTest ();foodTest.start ();}}
运行结果: