Java知识点梳理——常用方法总结
1、查找字符串最后一次出现的位置
String str = "my name is zzw";
int lastIndex = str.lastIndexOf("zzw");
if (lastIndex == -1) {
System.out.println("zzw 404");
} else {
System.out.println(lastIndex);
}
字符串查找
2、字符串分割
// 第一种方法 split
String str = "my name is zzw";
String[] strs = str.split(" ");
for (String s : strs) {
System.out.println(s);
}
// 第二种方法 StringTokenizer可以设置不同分隔符来分隔字符串,
// 默认的分隔符是:空格、制表符(\t)、换行符(\n)、回车符(\r)
String str2 = "hello everyone, my name is zzw";
StringTokenizer st = new StringTokenizer(str2);
while (st.hasMoreElements()) {
System.out.println(st.nextElement());
}
StringTokenizer st2 = new StringTokenizer(str2, ",");
while (st2.hasMoreElements()) {
System.out.println(st2.nextElement());
}
字符串分割
3、字符串大小写转换
String str = "zzw";
System.out.println(str.toUpperCase()); // 转大写
System.out.println(str.toLowerCase()); // 转小写
字符串转大小写
4、数组元素查找
int[] array = { 1, 6, 7, 5, 4, -6, 3, 9 };
int index = Arrays.binarySearch(array, 5);
System.out.println(index);
数组元素查找
5、获取当前年、月、日等
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int day = cal.get(Calendar.DATE);
int doy = cal.get(Calendar.DAY_OF_YEAR);
int dom = cal.get(Calendar.DAY_OF_MONTH);
int dow = cal.get(Calendar.DAY_OF_WEEK);
Date date = cal.getTime();
System.out.println("当前时间:" + date + "," + year + "年" + month + "月" + day + "日"
+ ",一年的第" + doy + "天,一月的第" + dom + "天,一周的第" + dow + "天");
Calendar时间处理
6、时间戳转换时间
/*yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)
K:和hh差不多,表示一天12小时制(0-11)
z:表示时区
*/
Long timeStamp = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E D F");
String sTime = sdf.format(new Date(timeStamp));
System.out.println(sTime); // 输出格式:2018-08-21 14:29:19 星期二 233 3
时间戳
7、九九乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "×" + i + "=" + i * j + "\t");
}
System.out.println();
}
九九乘法表
8、文件操作
BufferedWriter out = new BufferedWriter(new FileWriter("d:\\zzw.txt"));
out.write("hello world");
out.close();
System.out.println("文件写成功");
BufferedReader in = new BufferedReader(new FileReader("d:\\zzw.txt"));
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
System.out.println("文件读成功");
File file = new File("d:\\zzw.log");
if (file.createNewFile()) { // 创建文件
System.out.println("文件创建成功");
} else {
System.out.println("文件创建失败");
}
if (file.exists()) { // 检测文件是否存在
if (file.delete()) { // 删除文件
System.out.println("文件删除成功");
} else {
System.out.println("文件删除失败");
}
} else {
System.out.println("文件不存在");
}
文件操作
9、目录操作
String directories = "d:\\a\\b\\c\\d\\e\\f\\g\\h\\i";
File file = new File(directories);
boolean b = file.mkdirs(); // 创建目录
if (b) {
System.out.println("目录创建成功");
} else {
System.out.println("目录创建失败");
}
File f = new File("d:\\a");
if (f.isDirectory()) { // 检测是否为目录
if (file.list().length > 0) { // 检测目录是否为空
System.out.println("目录不为空");
} else {
System.out.println("目录为空");
}
} else {
System.out.println("不是目录");
}
long size = FileUtils.sizeOfDirectory(f); // 检测目录大小
System.out.println("目录大小:" + size);
String parentDir = f.getParent(); // 获取上级目录
System.out.println("上级目录:" + parentDir);
String curDir = System.getProperty("user.dir"); // 获取当前工作目录
System.out.println("当前目录:" + curDir);
Date lastModified = new Date(f.lastModified()); // 获取目录最后修改时间
System.out.println("目录最后修改时间:" + lastModified);
目录操作
10、递归遍历目录
public static void main(String[] args) {
File dir = new File("d:\\a"); // a目录结构 a/b/c/d/e/f/g/h/i
getAllDirsAndFiles(dir);
/*
* 输出结果
* d:\a
* d:\a\b
* d:\a\b\c
* d:\a\b\c\d
* d:\a\b\c\d\e
* d:\a\b\c\d\e\f
* d:\a\b\c\d\e\f\g
* d:\a\b\c\d\e\f\g\h
* d:\a\b\c\d\e\f\g\h\i
*/
}
// 递归遍历目录
public static void getAllDirsAndFiles(File dir) {
System.out.println(dir);
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
getAllDirsAndFiles(new File(dir, children[i]));
}
}
}
遍历目录
11、递归删除目录
public static void main(String[] args) throws IOException {
File f = new File("d:\\a"); // a目录结构 a/b/c/d/e/f/g/h/i
deleteDir(f); // 递归方法
/*
* 输出结果
* i目录已被删除!
* h目录已被删除!
* g目录已被删除!
* f目录已被删除!
* e目录已被删除!
* d目录已被删除!
* c目录已被删除!
* b目录已被删除!
* a目录已被删除!
*/
}
// 递归删除目录——先删除文件后删除目录
public static boolean deleteDir(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
if (dir.delete()) {
System.out.println(dir.getName() + "目录已被删除!");
return true;
} else {
System.out.println(dir.getName() + "目录删除失败!");
return false;
}
}
删除目录
12、数组、集合相互转换
// 数组转集合
String[] strs = { "zzw", "qq", "weixin" };
List<String> lst = Arrays.asList(strs);
for (String str : lst) {
System.out.println(str);
}
// 集合转数组
String[] sArrays = lst.toArray(new String[0]);
for(String s : sArrays){
System.out.println(s);
}
数组集合转换
13、List集合
List list = Arrays.asList("one Two three Four five six Two".split(" "));
System.out.println("最大值: " + Collections.max(list)); // 获取集合最大值
System.out.println("最小值: " + Collections.min(list)); // 获取集合最小值
System.out.println("List: " + list);
Collections.rotate(list, 3); // 循环移动元素 参数3代表移动的起始位置
System.out.println("rotate: " + list); // 输出结果 [five, six, Two, one, Two, three, Four]
List subList = Arrays.asList(new String[] { "Two" });
int index = Collections.indexOfSubList(list, subList); // 检测子列表是否在列表中,返回子列表所在位置
System.out.println(index);
int lastIndex = Collections.lastIndexOfSubList(list, subList);
System.out.println(lastIndex);
集合
14、网页抓取
URL url = new URL("https://www.baidu.com");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
BufferedWriter writer = new BufferedWriter(new FileWriter("data.html"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
writer.write(line);
writer.newLine();
}
reader.close();
writer.close();
网页抓取
15、获取远程文件大小
URL url = new URL("http://wx.qlogo.cn/mmopen/SPia0Eklic7mk65iaCc4LXiciaKpQFoI2gk6cwKKqPj7cSjSrmribre4B17DzVBQib3CVfYvKW6xc9DyDBUBScECnahZrYZa7wptTDJ/0"); // 微信头像
URLConnection conn = url.openConnection();
int size = conn.getContentLength();
if (size < 0) {
System.out.println("无法获取文件大小。");
} else {
System.out.println("文件大小为:" + size + " bytes");
}
conn.getInputStream().close();
获取远程文件
Java知识点梳理——常用方法总结的更多相关文章
- java知识点梳理
网络搜索结果,出处不详,仅供参考 对于刚刚接触Java的人,java基础知识技术点繁多,那么gkstk小编为大家汇总最全java知识点如下,仅供大家参考学习! 1. JVM相关(包括了各个版本的特性) ...
- Java知识点梳理——集合
1.定义:Java集合类存放于java.util包,是存放对象的容器,长度可变,只能存放对象,可以存放不同的数据类型: 2.常用集合接口: a.Collection接口:最基本的集合接口,存储不唯一, ...
- Java知识点梳理——装箱和拆箱
1.前言:Java是典型的面向对象编程语言,但其中有8种基本数据类型不支持面向对象编程,基本数据类型不具备对象的特性,没有属性和方法:Java为此8种基本数据类型设计了对应的类(包装类),使之相互转换 ...
- Java知识点梳理——继承
1.定义:继承允许创建分等级层次的类,就是子类继承父类的特征行为,使得子类对象具有父类实例的方法, 使得子类具有父类相同的行为. 2.继承的特性: a.子类拥有父类非priavte的属性.方法: ...
- Java知识点梳理——多态
1.定义:多态是同一个行为具有多个不同表现形式或形态的能力,即一个接口不同的实例执行不同的操作: 2.优点:消除类型之间的耦合关系.可替换性.可扩展性.接口性.灵活性.简化性: 3.多态存在的3个必要 ...
- Java知识点梳理——抽象类和接口
抽象类 1.定义:没有包含足够的信息来描绘一个具体对象的类,不能被实例化,必须被继承: 2.abstract关键字:abstract class定义抽象类,普通类的其它功能依然存在,如变量.方法等: ...
- Java知识点梳理——读写分离
1.读写分离:可以通过Spring提供的AbstractRoutingDataSource类,重写determineCurrentLookupKey方法,实现动态切换数据源的功能:读写分离可以有效减轻 ...
- Java知识点梳理——泛型
1.定义:泛型的本质是参数化类型,就是将类型由原来的具体的类型参数化,这种参数类型可以用在类.接口.方法中,分别称为泛型类.泛型接口.泛型方法: 2.泛型类:泛型类的声明和非泛型类的声明类似,除了在类 ...
- java 知识点梳理
1.ArrayList与linkedList 区别 ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦; 优点是查找比较快. Lin ...
随机推荐
- Bitmap类
一.Bitmap类 Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象.该类的主要方法和属性如下: 1. GetP ...
- unittest框架及自动化测试
之前在公司做过自动化测试的知识分享,现在把它记录下来. •一.如何更好的编写测试用例 •1.模块化:将一些基础的.共有的步骤代码独立为单独的模块,使用时再调用.好处:可以使代码复用,减少代码编写, ...
- 过滤器解决hibernate中懒加载问题
使用过滤器解决懒加载问题需要我们对过滤器的生命周期有深刻的理解 1.浏览器发送一个请求 2.请求通过过滤器执行dofilter之前的代码 3.浏览器通过过滤器到达Servlet(注意我们这里的serv ...
- 组队训练3回放 ——hnqw1214
组队训练3回放 练习赛过程回放: 开场先看最后一题, 发现是专题训练时做过的网络流原题, cst照着之前的打一遍,第一遍WA, 发现数组开小了,改大后AC. 这时候qw看B题, 一开始想不到方法, c ...
- How To Use Git Source Control with Xcode in iOS 6
This tutorial is by Malek Trabelsi, a passionate iOS developer from Tunisia focused primarily on mob ...
- How To Install Oracle Forms 12c On Windows 7
Below is the step by step guide to install Oracle Forms 12c on Windows 7. To install Oracle Forms 12 ...
- SVN源码服务器搭建-详细教程
一.引言 笔者曾经试图在网上搜索一篇关于SVN源代码服务器搭建方面的中文技术文章,可惜,所找到的,要么是不完整,要么就是对笔者没什么帮助的文章,TortoiseSvn的帮助文档固然强大,但因为是英文, ...
- WEB API 返回类型设置为JSON 【转】
http://blog.sina.com.cn/s/blog_60ba16ed0102uzc7.html web api写api接口时默认返回的是把你的对象序列化后以XML形式返回,那么怎样才能让其返 ...
- HTML5 Canvas 八星聚义动态效果
昔有石碣村七星聚义,今有Canvas八星聚义.动态效果是,八颗星以等速螺线慢慢向中心聚集,最后汇聚成一颗. 效果: 代码: <!DOCTYPE html> <html lang=&q ...
- KVO(1)
#import "ViewController.h" @interface ViewController () @property(nonatomic, strong)UIButt ...