Java-day02

package day02;

public class Demo {

	public static void main(String[] args) {
		/*
		 * String 类型
		 * 不可变的对象 ,被final修饰,对象一旦创建 就不可改变
		 * java 是采用Unicode字符集,一个字符占2个字节(Unicode是变长)
		 * 
		 * 格式:
		 * 一:String str="123";
		 * 二:String str = new String ("水电费");
		 * 
		 * 一:采用直接量方式,在内存中有一个String 常量池,若有该类型字符串,就直接重用,若没有创建新的字符串,(创建的字符串是公共的)
		 * 二:创建的对象是存在堆中(强制创建对象)
		 * 
		 * 常量池:
		 * 创建时先在常量池中进行查找,查到对应的字符串,就不会创建,而是重用此字符串,没有查到就创建
		 * (jvm操作)
		 * 频繁修改字符串就不要使用String
		 * 
		 * 字符串的重用可以减少内存的开销 
		 * 
		 */
		
		String str="123abc";
		String str1="123abc";

		String str2=1+"23abc";
		/*
		 * 虚拟机机在赋值之前将等号右边的结果  计算完毕之后  ,在进行赋值	
		 * (虚拟机在用结果和String常量池中匹配,有就重用,没有就创建)
		 */
		
		String str3 = "123"+"abc";
		String str4 = '1'+23+"abc";
		String str5 = new String("123zbc");
		
		
		
		System.out.println(str==str1);//true
		System.out.println(str==str2);//true
		System.out.println(str==str3);//true
		System.out.println(str==str4);//false
		System.out.println(str==str5);//false 
		
		/*
		 * String 的长度
		 * 应用.length()
		 * 
		 * 数组中的.length 和 String 中.length()区别
		 * 数组长得是属性,String中的是方法
		 */
		//          01234567
		String s = "java ABC";
		System.out.println(str.length());//6
		System.out.println(s.length());//8
		/*给定一个字符串中的下标,并返回当前下标所对应的下标
		 * charAt(int index); int
		 * index:一个下标
		 */
		
		char c = s.charAt(5);
		
		System.out.println(c);//A
		c = s.charAt(8);
		System.out.println(c);
		/*
		 * 字面量:直接给的值
		 * 直接赋值的字符串在常量池中,若有其他赋值存在该串
		 * 若没有创建
		 * 弊端:频繁修改浪费内存
		 */
		String t="a";
		for(int i=0;i<10000000;i++) {
			t+=t;
		}
		System.out.println("结束");
	}

}
package day02;

public class Demo1 {
	public static void main(String[] args) {
		/* 检索:给定字符 并在字符串中进行检索匹配,并返回当前字符在字符串中的下标
		 * 没有检索到对应的字符返回-1
		 * indexOf(char c); int
		 */
		
		//            
		String str = "java 我恨你!java";
		
		int i = str.indexOf('恨');
		System.out.println(i);//6
		i=str.indexOf('爱');
		System.out.println(i);//-1
		/* 检索当前中是否包含给定的字符串,并返回第一次出现的下标
		 * 没有检索到对应的字符返回-1
		 * indexOf(String str);int
		 */
		
		 i = str.indexOf("我恨你");
		System.out.println(i);//5
		i = str.indexOf("gr");
		System.out.println(i);//-1
		/* 检索给定的字符 在给定下标匹配的位置
		 * 没有检索到对应的字符返回-1
		 * indexOf(char ch, int fromIndex);int
		 */
		i = str.indexOf("a",5 );
		System.out.println(i);//10
		
		/* 检索 从指定位置开始检索给定的字符串
		 * 没有检索到对应的字符返回-1
		 * indexOf(String str, int fromIndex);int
		 */
		i = str.indexOf("ja", 5);
		System.out.println(i);//9
		

	}
}
package day02;

public class Demo2 {
	public static void main(String[] args) {
		/* 012345678901234
		 * www.aidu.com.cn
		 * 检索 公司域名的字符串区间范围
		 * 思路:第一个点出现的下标,再检索第二个点出现的下标
		 */
		
		String str="www.aidu.com";
		int start = str.indexOf('.');
		System.out.println(start);//3
		
		int end = str.indexOf('.', start+1);
		System.out.println(end);
		
		/* 截取子串 从给定下标位置开始截取子串
		 * 包含给定下标(含头)的字符
		 * substring(int start); String
		 */
		String s = str.substring(start+1);
		System.out.println(s);
		
		/* 截取子串 从给定的下标开始到结束
		 * 当前方法给定的参数,包含头不包含尾   
		 * (在Java中给定的区间都是包含头不包含尾)
		 * substring(int start,int end); String 
		 */
		s = str.substring(start+1, end);
		System.out.println(s);
	}
}
package day02;

public class Demo4 {
	public static void main(String[] args) {
		/* 去除字符串两边的空白
		 * (空格 换行 制表符)
		 * trim();String
		 */
		String str = "	\tjava 我爱你! java!!	";
		str = str.trim();
		System.out.println(str);//java 我爱你! java!!
		
		str ="java 我爱你! java!!   ";
		str=str.trim();
		System.out.println(str);
		
		
	}
}
package day02;

import java.util.Scanner;

public class Demo5 {
	public static void main(String[] args) {
		/* 大小写转换
		 * toUpperCase();String 转大写
		 * 将字符串内的英文转换成大写
		 * toLowerCase();String 转小写
		 * 将字符串内的英文转换成小写
		 */
		String str = "fewfFEFE缴费";
		str = str.toUpperCase();
		System.out.println(str);
		
		str = str.toLowerCase();
		System.out.println(str);
		
		Scanner scn = new Scanner(System.in);
		String str1 = scn.nextLine();
		String str2 = scn.next().toLowerCase();
		System.out.println(str1);
		System.out.println(str2);
		if(str.equals(str2)) {
			System.out.println("通过");
		}else {
			System.out.println("没通过");
		}
	}
}
package day02;

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

public class Demo6 {
	public static void main(String[] args) {
		/*
		 * 生成验证码长度4 a~z A~Z 0-9组合
		 */
		while(true) {
			String str="";
			Random ran = new Random();
			for(int i=0;i<4;i++) {
				int  j = ran.nextInt(3);
				switch(j) {
				case 0: str += (char) (ran.nextInt(26)+'a');break;
				case 1: str+=(char) (ran.nextInt(26)+'A');break;
				case 2: str+=ran.nextInt(10);break;
				}
			}
			System.out.println(str);
			System.out.println("请输入验证码(不区分大小写):");
			Scanner scn = new Scanner(System.in);
			String str1 = scn.next();
			if(str1.toLowerCase().equals(str.toLowerCase())) {
				System.out.println("success");
				break;
			}else {
				System.out.println("false");
			}
		}

	}
}
package day02;



public class Demo7 {
	public static void main(String[] args) {
		
		/* 查看当前的字符串是否以给定字符串的结尾
		 * 是返回true,不是返回false
		 * endsWith(String str); boolean
		 */
		String str = "京.A0001";
		boolean b = str.endsWith("01");
		System.out.println(b);
		
		/* 查看当前字符串是否是给定的字符串开头
		 * 是返回true 否则返回false
		 * startsWith(String str);boolean
		 */
		b=str.startsWith("京");
		System.out.println(b);
		
		/* 
		 * 将Java的基本数据类型转成String
		 * 静态方法String.valueOf(基本数据类型);String
		 * 此方法多重载
		 */
		int i=100;
		String str1 = ""+i; //懒人操作
		str1=String.valueOf(str1);
		System.out.println(str1);
		System.out.println(100);
		
		/* 
		 * 以给定字符进行截取,生成两个子串
		 * 返回String数字形式(不包含给定字符串)
		 * split(String str);String[]
		 */
		str="1+1";
		String [] s = str.split("\\+");
		System.out.println(s[1]);
		/*
		 * 更换图片的名字
		 */
		String img="大狗.png";
		String [] m = img.split("\\.");
		long l = System.currentTimeMillis();//毫秒
		System.out.println(""+l+"."+m[1]);

		
		
		
		System.exit(0);
	}
}
package day02;

import java.util.Scanner;

public class Demo8 {
	public static void main(String[] args) {
		/*
		 * 该对象(字符串)可以反复修改
		 * 追加, 插入, 替换的方法返回的结果是this
		 * toString()是返回String
		 * 该类实现了序列(后面讲)
		 * 
		 * StringBuilder的线程是不安全的
		 * 
		 * "世界真美好!"
		 * 1\我要带你去看看
		 * 2\在世界真美好后插入  : 啊
		 * 3\把世界替换为山西农业大学
		 * 4\删除啊 之前的字符串
		 * 
		 * 从控制台接收字符串,将不和谐的子串替换
		 */
		
		StringBuilder s = new StringBuilder("世界真美好!");
		System.out.println(s);
		s.append("我要带你去看看!");
		System.out.println(s);
		s.insert(6, "啊");
		System.out.println(s);
		s.replace(0, 2, "山西农业大学");
		System.out.println(s);
		s.delete(0, 10);
		System.out.println(s);
		
		Scanner scn = new Scanner(System.in); 
		String s1 = scn.next();
		
//		String n = "fjosfpojpkjfjowifmdjdseijfmd";
		
		s1=s1.replaceAll("md", "**");
		System.out.println(s1);
		
		
		
	}
}
package day02;

import java.util.Scanner;

public class Practice {
	public static void main(String[] args) {
		Practice a = new Practice();
		String str =  a.random();
		System.out.println("请输入正确的验证码"+str);
		Scanner scn = new Scanner(System.in);
		String str1 = scn.next().toLowerCase();
		str=str.toLowerCase();
		if(str.equals(str1)) {
			System.out.println("输入正确");
		}else {
			System.out.println("错误");
		}
	}
	char []str= {'0','1','2','3','4','5','6','7','8','9','q','w','e','r','t','y','u','i','o',
			'p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n',
			'm','Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G',
			'H','J','K','L','Z','X','C','V','B','N','M'};
	public String random() {
		String str1="";
		for(int i = 0;i<4;i++) {
			int s = (int) (Math.random()*62);
			str1+=str[s];
		}
		return str1;
	}
}
package day02;

public class Zuoye {
	public static void main(String[] args) {
		String str = "someapp/manager/emplist.action";
		int start = 0;
		String[]s=str.split("/");
	
		System.out.println(s[2]);
		
		
		String str1="able was i ere i saw elba";
		String s1="";
		String s2="";
		boolean b=true;
	
			for(int i=0;i<str1.length();i++) {
				for(int j=str1.length()-1;j>=0;j--) {
					s1 =String.valueOf(str1.charAt(i));
					s2 =String.valueOf(str1.charAt(j));
					
					if(s1.equals(s2)) {
						b=true;
					}else {
						b=false;
					}
					
					if(i==j) {
						break;
					}
				} 
			}
	
		if(b) {
			System.out.println("是回文字符串");
		}else {
			System.out.println("不是回文字符串");
			b=false;
		}	
		
		int i=1;
        StringBuilder sb = new StringBuilder();
        for(char c='\u4e00'; c<='\u9fa5';c++,i++){
            sb.append(c);
            if(i %50 ==0){
                sb.append("\n");
            }
        }
        System.out.print(sb.toString());
		System.out.println(i);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_38339863/article/details/82389983
今日推荐