1.格式化输出

​ 在输出多个字符时,一般用“+”连接,如果变量较多,拼接就会变得很繁琐。当使用格式化输出时,就能非常简洁的表示。

%s表示字符串,%d表示数字,%n换行。

​ e . g .

     String name="锤子";int strike=5;String item="人";//非格式化输出String sentence=name+"袭击了"+strike+"个"+item;System.out.println(sentence);//注意此处是println()//格式化输出String sentenceFormat="%s袭击了%d个%s%n";//此处是printf(指定输出语句,第一个格式化输出符号,第二个,第三个)System.out.printf(sentenceFormat,name,strike,item);//printf和format达到的效果是一致的,用printf()时调用了format()System.out.format(sentenceFormat,name,strike,item);

2.其他常用的格式化方法

     int year = 2020;//总长度,左对齐,补0,千位分隔符,小数点位数,本地化表达//直接打印数字System.out.format("%d%n",year);//总长度是8,默认右对齐System.out.format("%8d%n",year);//总长度是8,左对齐System.out.format("%-8d%n",year);//总长度是8,不够补0System.out.format("%08d%n",year);//千位分隔符System.out.format("%,8d%n",year*10000);//小数点位数System.out.format("%.2f%n",Math.PI);//不同国家的千位分隔符System.out.format(Locale.FRANCE,"%,.2f%n",Math.PI*10000);System.out.format(Locale.US,"%,.2f%n",Math.PI*10000);System.out.format(Locale.UK,"%,.2f%n",Math.PI*10000);

3.字符

​ 保存一个字符时使用char。char对应的封装类是Character。

​ Character中的常见方法举例:

     //不能把字符直接转换为字符串,下面这种会报错//String a='a';String str=Character.toString('a');System.out.println(str);//以下所有方法只能转换一个字符,不能转换字符串//判断字符是否为字母,返回布尔类型,char型用单引号System.out.println(Character.isLetter('3'));System.out.println(Character.isLetter('a'));//判断是否为数字System.out.println(Character.isDigit('3'));System.out.println(Character.isDigit('a'));//判断是否为空白System.out.println(Character.isWhitespace('a'));System.out.println(Character.isWhitespace('5'));System.out.println(Character.isWhitespace(' '));//判断是否大写System.out.println(Character.isUpperCase('A'));System.out.println(Character.isUpperCase('x'));System.out.println(Character.isUpperCase('5'));//判断是否小写System.out.println(Character.isLowerCase('A'));System.out.println(Character.isLowerCase('x'));System.out.println(Character.isLowerCase('6'));//字符转换为小写System.out.println(Character.toLowerCase('A'));//如果是数字转换为大小写,那么转换之后还是数字本身System.out.println(Character.toLowerCase('5'));System.out.println(Character.toLowerCase('a'));//字符转换为大写System.out.println(Character.toUpperCase('A'));System.out.println(Character.toUpperCase('a'));System.out.println(Character.toUpperCase('5'));

4.常见转义

     System.out.println("使用一个空格不能达到右对齐效果");System.out.println("abc def");System.out.println("ab def");System.out.println("a def");System.out.println("a  def");

     //转义字符要再加一个\才能正常显示System.out.println("使用\\t制表符能达到右对齐效果");System.out.println("abc\tdef");System.out.println("ab\tdef");System.out.println("a\tdef");

     System.out.println("一个\\t制表符的长度展示");System.out.println("12345678对齐");System.out.println("\t对齐");

     System.out.println("换行符\\n的作用效果");System.out.println("哈哈\n嘿嘿");

     System.out.println("单引号 \\'");System.out.println("\'abc\'def");

     //显示双引号转义字符前要加两个\\,否则将会报错(编译器认为少了一个双引号)System.out.println("双引号\\\"");System.out.println("\"哈哈\"嘿嘿");

     System.out.println("反斜杠本身\\");System.out.println("哈哈哈哈\\");

5、字符串

​ 字符串即字符的组合。在Java中字符串是一个类,因此我们所见到的字符串都是对象。

​ 常见创建字符串手段:

​ 1.每当有一个字面值出现的时候,虚拟机会自动创建一个字符串。

​ 2.调用String的构造方法创建一个字符串对象。

​ 3.通过+加号进行字符串拼接也会创建新的字符串对象。

         String garen ="盖伦"; //字面值,虚拟机碰到字面值就会创建一个字符串对象String teemo = new String("提莫"); //创建了两个字符串对象char[] cs = new char[]{'崔','斯','特'};String hero = new String(cs);//通过字符数组创建一个字符串对象String hero3 = garen + teemo;//通过+加号进行字符串拼接

注:String类被默认修饰为final,所以是不能被继承的。字符串对象默认是immutable的,里面的内容永远不能改变。

6.操纵字符串

关键字 简介
charAt 获取字符
toCharArray 获取对应的字符数组
subString 截取字符串
split 分隔
trim 去掉首尾空格
toLowerCase/toUpperCase 大小写
indexOf/lastIndexOf/contains 定位
replaceAll/replaceFirst 替换

7.比较字符串(DAY 6\Object类)

①“==”判断引用指向是否为同一个对象

     String str1 = "the light";String str2 = new String(str1);//==用于判断是否是同一个字符串对象System.out.println( str1  ==  str2);

​ 很明显,上所示示例代码中str1和str2并不是同一个字符串对象。一般来说,编译器每碰到一个字符串的字面值就会创建一个新的对象。且如上所示str2虽然内容和str1相同,但指向的是new出来的另一个对象。

     String str1 = "the light";String str3 = "the light";System.out.println( str1  ==  str3);

​ 上所示为特例,编译器在遇到字面值str1以后,创建了一个字符串对象(the light)。在下一行,编译器发现str3这个字面值的内容已经存在了,所以str3就会指向该内容的对象。所以str1和str3的对象是同一个。

②“equals()”判断字符串内容是否相同

     String str1 = "the light";String str2 = new String(str1);String str3 = str1.toUpperCase();//==用于判断是否是同一个字符串对象System.out.println( str1  ==  str2);System.out.println(str1.equals(str2));//完全一样返回trueSystem.out.println(str1.equals(str3));//大小写不一样,返回falseSystem.out.println(str1.equalsIgnoreCase(str3));//忽略大小写的比较,返回true

③判断是否以子字符串开始或者结束

        String str1 = "the light";String start = "the";String end = "Ight";System.out.println(str1.startsWith(start));//以...开始System.out.println(str1.endsWith(end));//以...结束

8. StringBuffer

StringBuffer是可变长的字符串。

①关键字append

     //关键字append的使用String str1="let there be";//根据str1创建一个StringBuffer对象StringBuffer sb1=new StringBuffer(str1);//在sb1指向的对象后追加字符串sb1.append(" light");System.out.println(sb1);

②关键字delete

     //删除字符串sb1.delete(4, 10);//删除位置4至10的字符串System.out.println(sb1);

③关键字insert

     //插入字符串sb1.insert(4, "there");//在位置4插入字符串thereSystem.out.println(sb1);

④关键字reverse

     //反转字符串sb1.reverse();//原字符串由尾到头进行反转System.out.println(sb1);

为什么StringBuffer可以改变长度?

和String内部是一个字符数组一样,StringBuffer也维护了一个字符数组。但是这个数组留有冗余长度。

     //StringBuffer长度和容量String str2="Hi";StringBuffer sb2=new StringBuffer(str2);System.out.println(sb2.length());System.out.println(sb2.capacity());

9.日期 Date

​ 在使用Date类时,要先导入java.util.Date。

①时间原点

​ 所有的数据类型,不管是整数、布尔、浮点或是字符串,最后都需要以数字的形式表现出来。日期类型也不理例外。在日期类型中0代表的数字即Java中的时间原点,其对应的日期时1970年01月01日08点00分00秒。所有的日期都是以这个0点为基准,每过一毫秒就加一。

②创建日期对象

Date d1=new Date();//不加参数为当前时间
System.out.println("当前时间:");
System.out.println(d1);// 从1970年1月1日 早上8点0分0秒 开始经历的毫秒数
Date d2 = new Date(5000);
System.out.println("从1970年1月1日 早上8点0分0秒 开始经历了5秒的时间");
System.out.println(d2);

③ getTime

getTime()得到的时一个long型的整数。

这个整数代表从1970年1月1日 早上8点0分0秒开始,每经过一毫秒,增加1。直接打印对象,会看到“Fri Nov 26 09:14:53 CST 2021”。

④System.currentTimeMillis()

该方法用于读取当前时间的毫秒数。

new Date().getTime()和System.currentTimeMillis()是相同的。但由于机器性能原因,两者打印出的结果不会相同,因为执行代码也需要时间。

10.日期格式化

①日期转字符串

  • y 代表年

  • M 代表月

  • d 代表日

  • H 代表24进制的小时

  • h 代表12进制的小时

  • m 代表分钟

  • s 代表秒

  • S 代表毫秒

            //先import java.text.SimpleDateFormatSimpleDateFormat sdf=new SimpleDateFormat();//创建日期对象Date d=new Date();//格式化日期对象并转换成字符串String str=sdf.format(d);//输出System.out.println(str);
    

     SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");Date d2=new Date();String str2=sdf2.format(d2);System.out.println(str2);

②字符串转日期

​ 格式(yyyy/MM/dd HH:mm:ss)需要和字符串格式保持一致,如果不一样就会抛出解析异常ParseException。

     SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String str3="2021-11-29 14:14:14";//注意连接符号要与上面一致try {Date d3=sdf3.parse(str3);System.out.format("字符串%s通过转换为日期对象:%s",str3,d3.toString());} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}

11. Calendar

​ Calendar类即日历类,常用于进行”翻日历“,比如说下个月的今天是多久

①Calendar与Date进行互相转换

采用单例模式获取日历对象Calendar.getInstance();

     //采用单例模式获取日历对象Calendar.getInstance();Calendar c = Calendar.getInstance();//通过日历对象得到日期对象Date d = c.getTime();Date d2 = new Date(0);c.setTime(d2); //把这个日历,调成日期 : 1970.1.1 08:00:00

②翻日历

​ add()方法,在原日期上增加年/月/日。

​ set()方法,直接设置年/月/日。

         Calendar c = Calendar.getInstance();Date now = c.getTime();// 当前日期System.out.println("当前日期:\t" + format(c.getTime()));// 下个月的今天c.setTime(now);c.add(Calendar.MONTH, 1);System.out.println("下个月的今天:\t" +format(c.getTime()));// 去年的今天c.setTime(now);c.add(Calendar.YEAR, -1);System.out.println("去年的今天:\t" +format(c.getTime()));// 上个月的第三天c.setTime(now);c.add(Calendar.MONTH, -1);c.set(Calendar.DATE, 3);System.out.println("上个月的第三天:\t" +format(c.getTime()));

how2j:JAVA学习笔记——DAY 9相关推荐

  1. how2j:JAVA学习笔记——DAY 8

    1.封装类 ​ JAVA是一种面向对象语言,JAVA中的类把方法和数据连接在一起,构成了自包含式的处理单元.在JAVA在不能定义基本类型对象,为了能将基本类型视为对象进行除了,并能连接相关方法,JAV ...

  2. how2j:JAVA学习笔记——DAY4

    1.数组 数组是一个固定长度的,包含了相同数据类型的容器. 2.声明数组 数据类型[] 变量名 or 数据类型 变量名[] []:表示该变量是一个数组 int:表示数组中所有元素的数据类型 但是声明数 ...

  3. java学习笔记11--Annotation

    java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...

  4. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

  5. 准备写java学习笔记

    准备写java学习笔记 java int 转载于:https://blog.51cto.com/cryingcloud/1975267

  6. Java学习笔记--StringTokenizer的使用

    2019独角兽企业重金招聘Python工程师标准>>> Java Tips: 使用Pattern.split替代String.split String.split方法很常用,用于切割 ...

  7. java学习笔记12--异常处理

    java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 j ...

  8. Java学习笔记(十)--控制台输入输出

    输入输出 一.控制台输入 在程序运行中要获取用户的输入数据来控制程序,我们要使用到 java.util 包中的 Scanner 类.当然 Java 中还可以使用其他的输入方式,但这里主要讲解 Scan ...

  9. java学习笔记16--I/O流和文件

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理 ...

最新文章

  1. 游遍中国 —— 大街小巷、秘境与远方
  2. 【Clion-Ubuntu-dlib】运行一个dlib案例(一)(如何在clion编译器中配置CMakeLists)
  3. Git之第三方托管oschina
  4. 计算机图形学图形旋转_计算机图形学翻译
  5. 手把手教你搭建自己的个人博客(图文教程)
  6. QGIS+GH + MapServer
  7. Python操作SQLServer示例
  8. Baxter实战 (五)安装openNI2,NiTE-2并实现kinect 2实现动作跟随
  9. Oracle 开放源代码项目
  10. 推荐一款开源游戏开发平台
  11. MATLAB识别实验,基于MATLAB的图像识别
  12. CCF_Java_201909-3_字符画
  13. 运维面试必问的监控系列高频面试题(2021年最新版)
  14. IP静态路由实验(基于华为eNSP模拟器)
  15. CCF推荐+SCI二区期刊征收AI方向特刊|确定3个月出录用结果
  16. Windows取证一
  17. Mac与远程服务器数据交互软件Cyberduck
  18. gnuplot使用简介
  19. 暴跌是因币安丢币后做空?让链上数据告诉你真相
  20. 用Excel做饼图的一点技巧

热门文章

  1. IDEA 出现问题:JDWP Transport dt_socket failed to initialize, TRANSPORT_LOAD(509)解决方案(JAVA 小虚竹)
  2. 饥荒云服务器t键,饥荒T键使用说明 | 手游网游页游攻略大全
  3. 钉钉小程序父组件调用子组件方法(钉钉小程序踩坑实录)
  4. 做金融直播,这几个问题一定要知道
  5. 中国动力电池PACK行业商业模式创新及发展方向建议报告2022-2028年版
  6. python-优矿-牛市价差和熊市价差组合策略
  7. 激光雷达运动物体分割论文汇总(2021-2022)
  8. 批量备案域名查询工具-批量备案域名扫描查询
  9. 【崩坏学园2 不止】使用unity-studio提取并制作游戏内看板
  10. Carsim基本使用方式