day12

12.1 scanner类 

scanner类 是一种文本扫描器 

方法:查看api 有很多方法 

比较重要的方法:hasnextint  判断是否是整数 

 

package com.heima.Sanner;

import java.util.Scanner;

public class Demo1_Scanner {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个数");
		if(sc.hasNextInt()){
			int x = sc.nextInt();
			System.out.println(x);
		}else {
			System.out.println("录入错误");
		}
		
	}

}

12.2  连续录入两个数的问题 

 

录入一个整数  录入一个字符串  发现敲完数字后执行就完毕了 没有字符串 这个是因为 回车代表了/r/n

解决方案 :创建两个对象 

12.3 String类 

字符串是常量  一旦赋值 不能改变 

string str = "abc";   str = "def" syso str 答案是def 但这个不是赋值的改变 相当于重新创建了一个对象,原来的abc 没有被改变 变成了垃圾 

12.4 构造方法

 

package com.heima.string;

public class Demo2_string {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s1 = new String();
		System.out.println(s1);
		
		byte[] arr1 ={97,98,99};
		String s2 = new String(arr1);
		System.out.println(s2);
		
		byte[] arr2 ={97,98,99,100,101};
		String s3 = new String(arr2,2,2);
		System.out.println(s3);
		
		char[] arr3 = {'a','b'};
		String s4 = new String(arr3);
		System.out.println(s4);
		
		
		
	}

}


1.空参构造  2 构造之传字符数组

 

 3 和2的区别是转几个

4 字符数组等同于字符串  这个是字符数组 前面是字节数组 不要混淆 

5  5与4的关系就是2与3的关系 

 

 

12.5 STRING的一些面试题 

 

package com.heima.string;

public class demo3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//demo1();
		//demo2();
		//demo4();
		String s1=  "a"+"b"+"c";//'a'+'b'+'c'; 这样是不对的
		String s2 = "abc";
		System.out.println(s1 == s2);
		System.out.println(s1.equals(s2));
	}

	private static void demo4() {
		String s1 = new String("abc");
		String s2 = "abc";
		System.out.println(s1 == s2);
		System.out.println(s1.equals(s2));
	}

	private static void demo2() {
		String s1= new String("abd");
		System.out.println(s1);
	}

	private static void demo1() {
		String s1= "abd";
		String s2= "abd";
		System.out.println(s1==s2);
		System.out.println(s1.equals(s2));
	}

}


第一个题目是考察== 和equal的区别,==基本数据类型比较的是值,引用数据类型比较的是地址 

 

第二个题目涉及到创建中 系统内部的运行,这个是要创建两个对象的,第一个在常量池,第二个是在堆内存中的副本,并把此副本的地址值赋给方法

第三个是两个都一样的,因为string有常量优化机制 。

第四个是==是false,因为常量和变量的地址值是不一样的 

还有一个第五题,和第三题类似,是 "ab"+"c" 和"abc“”的比较,这个==也是false因为会调用stringbuffre

12.06 string的判断功能 

equals  equalsIgnoreCase 

contains 

startswith endswith 

isEmpty 

 

package com.heima.string;

public class demo4_atring {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//demo1();
		String s1 = "woaiheima";
		String s2 = "heima";
		String s3 = "wo";
		String s4 = "ma";
		System.out.println(s1.contains(s2));
		System.out.println(s1.startsWith(s3));
		System.out.println(s1.endsWith(s4));
		System.out.println(s1.isEmpty());
	}

	private static void demo1() {
		String s1 = "heima";
		String s2 = "heima";
		String s3 = "Heima";
		System.out.println(s1.equals(s2));
		System.out.println(s1.equals(s3));
		
		System.out.println(s1.equalsIgnoreCase(s3 ));
	}

}


12.07 模拟用户登录 

 

 

package com.heima.test;

import java.util.Scanner;

public class Test1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		for (int i = 0; i < 3; i++) {
			System.out.println("请输入用户名");
			String s1 = sc.nextLine();
			System.out.println("请输入密码");
			String s2 = sc.nextLine();
			if ("admin".equals(s1)&&"admin".equals(s2)) {
				System.out.println("输入的用户名密码正确");
				break;
				
			}else {
				if(i==2){
				System.out.println("明天再试试");
			}
				System.out.println("输入错误");
			}
		}

		}
		
}

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值