Java字符串与包装类

/**
 * 字符串与包装类
 */
package com.org.lxh;


import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


/**
 * @author Administrator
 *
 */
public class Chp8 {
/*
* 验证电话号码
*/
public static String checkPhoneNumber(String text){
if(text == null || text.isEmpty()){
return "error";
}

//定义正则表达式
String regex = "^\\d{3}-?\\d{8}\\d{4}-?\\d{8}$";
if(text.matches(regex))
return "电话号码";
else
return "不是的";

}





/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

//1、语句 "3+5="+3+5 输出什么?
System.out.println("3+5="+3+5);

//2、String str = null; 与 String str=""; 的区别是什么?
/*
* 前一句没有分配内存,后一句创建了一个长度为0的空字符串。并在内存中为其分配了内存空间。

*/

//3、String类是否可以被继承?
/*
* 不可以

*/

//4、字符串大小写的转换?
/*


*/
String str = "Long long ago, There's girl,She's name little REDHAT!";
String str2 = str.toUpperCase();
String str3 = str.toLowerCase();
System.out.println(str + "\n" + str2 + "\n" + str3);


//5、字符串的反向输出?
/*



*/

//6、== 运算符与equals()比较对象的区别是什么?
/*
* 当使用运算符 “==” 比较两个对象时,是比较两个对象使用的内存地址和内容是否相同,如果两个对象使用的是同一个地址,
* 并且内容相同,则结果为true,否则结果为false。

* 当使用equals()比较两个对象时,则是比较两个对象的内容是否相同,而与对象的内存地址无关。

*/
String str11 = new String("hello");
String str22 = new String("hello");
String str33 = str22; //str22与str33同一个内存地址
String str44 = "hello";

//使用 == 比较str11和str22
System.out.println("str1 == str2 比较的结果为: \t" + (str11 == str22)); //false

//使用 == 比较str22和str33
System.out.println("str22 == str33 比较的结果为:\t" + (str22 == str33)); //true

//
System.out.println("str22 == str44 的比较结果为:\t" + (str22 == str44)); //false

//使用equals比较str11和str22
System.out.println("str11.equals(str22)的结果为:\t" + str11.equals(str22)); //true

//使用equals比较str22和str33
System.out.println("str22.equals(str33)的结果为:\t" + str22.equals(str33)); //true




//7、判断字符串是否为空的方式?
/*



*/
String val = null;
if(val == null)
System.out.println("String val is null");

val = "";
if(val.equals(""))
System.out.println("String val is equals \"\"");

if(val.length() == 0)
System.out.println("String val's length is zero");

//8、如何实现你对日期的格式化?
/*

* JDK1.5开始,String类的format()方法可以格式化日期变量

* %td 一个月的第几天
* %te 一个月的第几天
* %tm 月份
* %ty 年份   
* %tY 4位年份
* %tj 一年中的第几天
* %ta %tA 星期
* %tb %tB 月份

*/
Date date = new Date();
System.out.println("默认日期格式:" + date);
System.out.println("一个月的哪一天: " + String.format("%te", date));
System.out.println("星期全称: " + String.format("%tA", date));

//9、时间变量格式化
/*
* %tH 两位24小时制的小时
* %tI 两位12小时的小时
* %tk
* %tl
* %tM 分钟
* %tS 秒
* %tL 毫秒
* %tN 毫微秒
* %tp am,pm
* %tZ 时区
* %ts 自1970-01-01 00:00:00到现在经过的秒数
* %tQ 毫秒数

*/
System.out.println("24小时制的小时: " + String.format("%tk", date));
System.out.println("时区: " + String.format("%tZ", date));


//10、日期与时间的组合格式化
/*
* %tR
* %tT
* %tr   
* %tD   =%tm%td%ty   02/28/2012
* %tF   ISO 8601格式的日期
* %tc
*/
System.out.println("24小时的时间: " + String.format("%tR", date));
System.out.println("24小时的时间: " + String.format("%tT", date));
System.out.println("12小时制的时间: " + String.format("%tr", date));
System.out.println("英文写法的日期: " + String.format("%tD", date));
System.out.println("ISO 8601日期的格式: " + String.format("%tF", date));
System.out.println(">>: " + String.format("%tc", date));


//11、常规数据类型的格式化?
/*
* 类似C语言

* %b   %B  布尔类型
* %c   %C  字符串
* %s   %S
* %d    %o    %x  %X
* %e    %E
* %%   %符号
*/
System.out.println("浮点数: " + String.format("%E", 128000.56f));
System.out.println("浮点数: " + String.format("%e", 128000.56f));
System.out.println("整数: " + String.format("%d", 7756));
System.out.println("八进制整数: " + String.format("%o", 7756));
System.out.println("十六进制整数: " + String.format("%x", 7756));
System.out.println("十六进制整数: " + String.format("%X", 7756));

//12、正则表达式
/*
* String类的matches()方法

*/
String num = "0431-3385926";
System.out.println(num + " " + checkPhoneNumber(num));

//验证IP地址, 下面使用正则表达式
/*
*  [abc] 表示a、b和c
*  [^abc] 表示a、b和c除外
*  [a-zA-Z] 字符集
*  [a-d[m-p]] a-d或m-p
*  [a-z&&[def]] d e f
*  [a-z&&[^bc]]   a-z中排除b c
*  [a-z&&[^m-p]] 
*/

Pattern pattern = Pattern.compile("\\b((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\b");
Matcher matcher = pattern.matcher("127.400.600.2"); //以验证127.400.600.2为例
System.out.println(matcher.matches());
System.out.println("=================================================================");





//日期
Pattern pattern1 = Pattern.compile("^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$");
Matcher matcher1 = pattern1.matcher("2000-02-29 23:59:59");
System.out.println(matcher1.matches());

//邮箱
Pattern pattern2 = Pattern.compile("^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
Matcher matcher2 = pattern2.matcher("hemmingway-@163.com");
System.out.println(matcher2.matches());


//13、字符串和数值类型的转换?
/*

*/
String s1 = "100";
String s2 = "253";
Integer int1 = Integer.parseInt(s1);
Integer int2 = Integer.parseInt(s2);


int ret = int1 + int2;
System.out.println("变量1: " + int1 + "  变量2:" + int2 + "  的和为:" + ret);

//14、去掉字符串中的空格
/*

*/
String s3 = "fdg dsl dfgds   sdngds dsgdss";
String s4 = s3.replaceAll(" ", "");      //第一个参数是正则表达式子
System.out.println(s3 + ", " + s4);

//15、子字符串
/*
* substring

*/
String testStr = "lkssldf2011dsfgd36";
char[] chars = testStr.toCharArray();
boolean bool = Character.isDigit(chars[7]);
if(bool == true)
System.out.println("字符串: " + testStr + " 包含数字");

//16、


}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值