前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java基础-常用类(二)

Java基础-常用类(二)

作者头像
cwl_java
发布2019-11-12 13:07:56
3240
发布2019-11-12 13:07:56
举报
文章被收录于专栏:cwl_Javacwl_Java

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42528266/article/details/102967023

String的常用方法
  • char charAt(int index)返回字符串中第index个字符。
  • boolean equals(String other)如果字符串与other相等,返回true
  • boolean equalsIgnoreCase(String other)如果字符串与other相等(忽略大小写),则返回true
  • int length() 返回字符串的长度。
  • String replace(char oldChar,char newChar)返回一个新串,它是通过用 newChar 替换此字符串中出现的所有oldChar而生成的
  • boolean startsWith(String prefix)如果字符串以prefix开始,则返回true
  • boolean endsWith(String prefix)如果字符串以prefix结尾,则返回true
  • String substring(int beginIndex) String substring(int beginIndex,int endIndex)返回一个新字符串,该串包含从原始字符串beginIndex到串尾或endIndex-1的所有字符
  • String toLowerCase() 返回一个新字符串,该串将原始字符串中的所有大写字母改成小写字母
  • String toUpperCase() 返回一个新字符串,该串将原始字符串中的所有小写字母改成大写字母
  • String trim()返回一个新字符串,该串删除了原始字符串头部和尾部的空格
StringBuffer和StringBuilder

StringBuffer和StringBuilder非常类似,均代表可变的字符序列,而且方法也一样

代码示例

代码语言:javascript
复制
package com.cwl.base.day04.string;

/**
 * @program: java_base
 * @description:
 * @author: ChenWenLong
 * @create: 2019-11-07 20:02
 **/
public class TestStringBuilder {

    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();   //字符数组长度初始为16
        StringBuilder sb1 = new StringBuilder(32);   //字符数组长度初始为32
        StringBuilder sb2 = new StringBuilder("abcd");   //字符数组长度初始为32, value[]={'a','b','c','d',\u0000,\u0000...}
        sb2.append("efg");
        sb2.append(true).append(321).append("随便");   //通过return this实现方法链.

        System.out.println(sb2);

        System.out.println("##################");

        StringBuilder gh = new StringBuilder("a");
        for (int i = 0; i < 1000; i++) {
            gh.append(i);
        }
        System.out.println(gh);

        StringBuilder sb4 = new StringBuilder("abcdefghijklmnopqrstuvwxyz");
        sb.delete(3, 5).delete(3, 5);   //结果:abchijklmnopqrstuvwxyz
        System.out.println(sb);
        sb.reverse();
        System.out.println(sb);

        StringBuffer sb3 = new StringBuffer();


    }
}
字符串的选用
  • String:不可变字符序列
  • StringBuilder:可变字符序列、效率高、线程不安全
  • StringBuilder:可变字符序列、效率低、线程安全
String使用陷阱
代码语言:javascript
复制
string s="a"; //创建了一个字符串
s=s+"b"; //实际上原来的"a"字符串对象已经丢弃了,现在又产生了一个字符串s+"b"。
//如果多次执 行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。
//如果这样的 操作放到循环中,会极大影响程序的性能。
时间处理相关类
在这里插入图片描述
在这里插入图片描述
Date时间类(java.util.Date)
  • 在标准Java类库中包含一个Date类。它的对象表示一个特定的瞬间,精确到毫秒。
  • Java中时间的表示说白了也是数字,是从:标准纪元1970.1.1 0点开始到某个时刻的毫秒 数,类型是long。

代码示例

代码语言:javascript
复制
package com.cwl.base.day04.date;

import java.util.Date;

/**
 * @program: java_base
 * @description:
 * @author: ChenWenLong
 * @create: 2019-11-08 10:43
 **/
public class TestDate {

    public static void main(String[] args) {
        Date d = new Date();
        long t = System.currentTimeMillis();
        System.out.println(t);
        Date d2 = new Date(1000);

        System.out.println(d2.toGMTString());   //不建议使用
        d2.setTime(24324324);
        System.out.println(d2.getTime());
        System.out.println(d.getTime()<d2.getTime());


    }
}
DateFormat和SimpleDateFormat

代码示例

代码语言:javascript
复制
package com.cwl.base.day04.date;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @program: java_base
 * @description:
 * @author: ChenWenLong
 * @create: 2019-11-08 10:43
 **/
public class TestDateFormat {

    public static void main(String[] args) {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss,属于本月的第W周");
        Date d = new Date(12321314323L);
        String str = df.format(d);   //将时间对象按照格式化字符串,转化成字符串
        System.out.println(str);
        System.out.println("####################");
        String str2 = "1977-7-7";
        DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date d2 = df2.parse(str2);
            System.out.println(d2);
        } catch (ParseException e) {
            e.printStackTrace();
        }


    }
}
Calendar日历类

代码示例

代码语言:javascript
复制
package com.cwl.base.day04.date;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 * @program: java_base
 * @description:
 * @author: ChenWenLong
 * @create: 2019-11-08 10:43
 **/
public class TestCalendar {

    public static void main(String[] args) {
        Calendar c = new GregorianCalendar();
        c.set(2001, Calendar.FEBRUARY, 10, 12, 23, 34);

        //		c.set(Calendar.YEAR, 2001);
//		c.set(Calendar.MONTH, 1);   //二月
//		c.set(Calendar.DATE, 10);

//		c.setTime(new Date());

        Date d = c.getTime();
        System.out.println(d);
        System.out.println(c.get(Calendar.YEAR));

        //测试日期计算
        c.add(Calendar.MONTH, -30);
        System.out.println(c);
    }
}
GregorianCalendar公历
  • GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标 准日历系统。
  • 注意:
    • 月份:一月是0,二月是1,以此类推,是12月是11
    • 星期:周日是1,周一是2,。。。周六是7
代码语言:javascript
复制
package com.cwl.base.day04.date;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

/**
 * @program: java_base
 * @description:
 * @author: ChenWenLong
 * @create: 2019-11-08 10:44
 **/
public class VisualCalendar {

    public static void main(String[] args) {
        System.out.println("请输入日期(按照格式:2030-3-10):");
        Scanner scanner = new Scanner(System.in);
        String temp = scanner.nextLine();

        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date date = format.parse(temp);
            Calendar calendar = new GregorianCalendar();
            calendar.setTime(date);
            int  day = calendar.get(Calendar.DATE);
            calendar.set(Calendar.DATE, 1);

            int maxDate = calendar.getActualMaximum(Calendar.DATE);
            System.out.println("日\t一\t二\t三\t四\t五\t六");

            for(int i=1;i<calendar.get(Calendar.DAY_OF_WEEK);i++){
                System.out.print('\t');
            }

            for(int i=1;i<=maxDate;i++){
                if(i==day){
                    System.out.print("*");
                }
                System.out.print(i+"\t");
                int  w = calendar.get(Calendar.DAY_OF_WEEK);
                if(w==Calendar.SATURDAY){
                    System.out.print('\n');
                }
                calendar.add(Calendar.DATE, 1);
            }

        } catch (ParseException e) {
            e.printStackTrace();
        }

    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • String的常用方法
  • StringBuffer和StringBuilder
  • 字符串的选用
  • String使用陷阱
  • 时间处理相关类
  • Date时间类(java.util.Date)
  • DateFormat和SimpleDateFormat
  • Calendar日历类
  • GregorianCalendar公历
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档