第五章String代码合集
import java.util.Date;//导入时间这个需要用的包
public class D5StringDemo {
public static void main(String[] args) {
// TODO 自动生成的方法存根
String str = " Hello World ";
int i = str.length();//获取字符串的长度
System.out.println(i);
int size = str.indexOf("l");//查找首次出现某字符或者字符串的操作
int size2 = str.lastIndexOf("l");//查找最后一次出现某字符或者字符串的操作
System.out.println("第一次出现l的位置是:"+size);
System.out.println("最后一次出现l的位置是:" + size2);
char a = str.charAt(4);//指定位置的字符显示操作
System.out.println(a);
String str2 = str.substring(3);//截取字符串的操作
System.out.println(str2);
String str3 = str.substring(3, 8);//指定位置截取,指定位置结束截取
System.out.println(str3);
System.out.println("忽略空格之前的字符串长度是:"+str.length());
String last = str.trim();//去除字符串前后的空格的操作
System.out.println(last);
System.out.println("忽略空格之后的字符串长度是:"+last.length());
String sre4 = str.replace("o","e");
System.out.println(sre4);
String str5 = "董海,你好!";
String str6 = str5.replace("你好", "你坏");//替换操作
System.out.println(str6);
String str7 = "你好!";
String str8 = "你好!";//这种情况分配的内存空间相同的
boolean b = (str7 == str8);//
System.out.println(b);
String str01 = new String("Hello,我");//开始分配内存空间
String str02 = new String("hello,我");
boolean c = (str01 == str02);//这种情况字符串相同,得到的结果却是false
System.out.println(c);
boolean d = str01.equals(str02);//中文的比较还是采用这种方法好一些
System.out.println(d);
boolean e = str01.equalsIgnoreCase(str02);//这种方法通常情况下用于数字和字母的组合验证码的操作,比较方便
System.out.println(e);//操作显示,汉语中夹杂着字母也是可以完成这种操作的.所以,后面这种方法还是可以考虑用汉语夹杂着字母的验证码的操作
int f = str01.compareTo(str02);//操作得知,他只会截取第一个字母来进行比较.
System.out.println(f);
String g[] = str.split("=");//没有达到预想的效果,不知道到底怎么分割
System.out.println(g);
//格式化字符串的相关操作
Date date = new Date();
String date1 = String.format("%tF", date);//中文试的年月日.当然也是最常用的一种
System.out.println(date1);
String date2 = String.format("%tD", date);//美式的年月日表达方法,开发跨国际的软件是需要这样的返回时间的方法的
System.out.println(date2);
String time1 = String.format("%tT", date);//精确试的时间表达方式,同样这种也是最常用的.
System.out.println(time1);
String time2 = String.format("%tR", date);//初略的表示时间的一种方式,当然这种方法主要是考虑到占用到手机屏幕中的位置的问题,比较简洁.
System.out.println(time2);
//常规类型的格式化,这种主要运用到之后的数据处理这一块,用户输入的转化成我们需要的,或者转化成用户需要的格式,非常实用
String aq = String.format("%d", 100/2);//这些操作的效果没有完成String到int的转化,暂时还不理解
System.out.println(aq);
String sw = String.format("%%", aq);//转化成字面%号,感觉毫无意义的一种操作
System.out.println(sw);
String de = String.format("%X", 20);//转化成十六进制,或许以后会有用处
System.out.println(de);//特别强调,这里不能够转化aq的值,或许是因为aq为字符串类型的原因
//学会使用正则表达式
//接下来做一个识别qq邮箱的代码识别
String str001 = new String("745280440@vip.com.cn");//假设存在vip的客户
String Email = "\\w+@(\\w{3})?\\.\\w{3}\\.\\w{2}";//正则表达式看着难,其实超级简单的
if(str001.matches(Email)){
System.out.println("这是一个合法的Email地址");
}else
{
System.out.println("这不是一个合法的Email地址");//完成实验,有机会可以去试一下,等后面学了输入操作就可以完美的实验了
}
boolean h = str.startsWith("hello");//判断字符串开始的方法
System.out.println("没去空格之前:"+h);
boolean n = str.endsWith("world");//判断结尾字符,如果出现空格的话,会按照空格计,所以在这里可以先使用去掉首尾空格的方法之后判断
System.out.println(n);
//接下来试一下
String str003 = str.trim();//去掉首尾空格
System.out.println("这是去掉空格之后的字符串:"+str003);
boolean o = str003.startsWith("Hello");//判断是否首字符串正确
System.out.println("去掉空格之后"+o);//输出boolean表达式,从而得出结果
//字母大小写的转换,这种也是相当于用到验证码的转换,但是之前的有个不区分大小写的比较方法,这里有着相似的作用,但是这个方法更加灵活一点
String str004 = new String();
str004 = str.toLowerCase();//将字符串转换成全部小写的格式
System.out.println(str004);
String str005 = new String();//将字符串全部转换成小写的格式
str005 = str.toUpperCase();
System.out.println(str005);
boolean p = str004.equals(str005);//拥有独立内存空间的字符串比较是否相等时
System.out.println("判断两个字符串是否相等"+p);
boolean q = str005.equalsIgnoreCase(str005);//不管大小写的比较方法
System.out.println("不管大小写的比较方法"+q);//输出打印
//测试,使用StringBuffer方法将字符串的长度自动增加
StringBuffer str006 = new StringBuffer("春眠不觉晓,");//为str006分配一个独立的内存空间
str006.append("处处闻鸟");//向字符串生成器追加内容
System.out.println(str006);//打印结果
str006.insert(9, "啼");//插入字符或者字符串的方法
System.out.println(str006);
str006.delete( 6, 11);//删除指定位置的字符串
System.out.println(str006);
String str007 = new String("我们是一家人");//为何这里以StringBuilder对象为字符串创建对象的时候就不能够完成比较嘞
String str008 = new String("我们是一好朋友");
str007.substring(0,2);
str008.substring(0,2);
boolean l = str007.equals(str008);//使用equal方法来比较截取的字符串是否相等
System.out.println("比较截取字符串之后是不是相等的:"+l);
}
}
打印菱形
public class D4_6_2 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
//打印一个菱形
int s = 5;//定义一个sum总共需要打印的行数
for(int i = 1 ;i <= s;i++){//循环体,外层循环是核心,上半部分一共循环5次.每次循环为了保证后期的代码的可更改性,i务必;联系到后面
for(int k = 1;k <= s - i ;k++){//内层有两个循环,这个是打印空格的,空格打印是递减的
System.out.print(" ");//不加换行操作符
}
for(int j = 1;j <= (i*2)-1;j++){ //这个打印*,每循环一次空格之后这个循环跟上接着打印输出*,不换行
System.out.print("* ");
}
System.out.println();//打印完一次完整的行,接着就是换行输出了
}
for(int l = 1;l <= s-1;l++){//下面是菱形的下半部分,和上半部分操作相比,是一致的.
for(int m = 1;m <= l;m++){
System.out.print(" ");
}
for(int n = 1 ;n <= (s*2)-((l*2)+1);n++){
System.out.print("* ");
}
System.out.println();
}
}
//耗时接近一个上午,看来调整心态是必不可少的一部分.
}