java基础-正则表达式+文件操作+内置包装类

目录

  • 正则表达式
    • 去除字符串前后空格:
    • 去除每一行中首尾的空格
    • 去除开头的 '数字_'
  • 文件操作
    • 打印当前项目路径
    • 获取文件的上级目录
    • /和\
    • 读取文件
  • 内置包装类
    • System类
      • 常用方法
    • Number类
      • Integer类常用方法
      • Float和Double

正则表达式

去除字符串前后空格:

str.trim()

去除每一行中首尾的空格

import java.util.regex.*;
Pattern pt = Pattern.compile("^\\s*|\\s*$");
Matcher mt = pt.matcher(line);
String str = mt.replaceAll("");

去除开头的 ‘数字_’

import java.util.regex.Matcher;
import java.util.regex.Pattern;// 处理例如 '0_1_a_test.docx',只需要去掉最开始的 'idx_'
String str = "10_1_a_test.docx";
Pattern p = Pattern.compile("\\d*_"); //匹配一个或多个数字再加一个下划线
Matcher m = p.matcher(str);
String tempAttachName = m.replaceFirst(""); // 输出:1_a_test.docx

文件操作

打印当前项目路径

System.getProperty("user.dir")
这是项目根目录路径,下面的自己写==

获取文件的上级目录

import java.io.File;public class DirSize {public static void main(String[] args) {File dir = new File("/home/huanyu/Desktop");String parentPath =dir.getParent();System.out.println("该目录的上级目录为:"+parentPath);}
}

/和\

windows和Linux的文件分隔符不同,获取方式

import java.io.File;public class test{public static void main(String args[]) {String a = System.getProperty("file.separator");System.out.println(a);System.out.println(File.separator);}
}

读取文件

FileInputStream fis = new FileInputStream(filePath); // filePath是自定义路径str
// 指定编码格式
BufferedReader br = new BufferedReader(new InputStreamReader(fis, "utf-8"));
String line = null;
while ((line = br.readLine()) != null) {//System.out.println(line);//break;
}
fis.close();这个方便在于能快速处理:
//1. filter line 3
//2. convert all content to upper case
//3. convert it into a List
list = stream.filter(line -> !line.startsWith("line3")).map(String::toUpperCase).collect(Collectors.toList());Charset c = Charset.forName("UTF-8");
//System.out.println(Charset.isSupported("UTF-8"));
try(Stream<String> stream = Files.lines(Paths.get(filePath), c)) {List<String> raws = new ArrayList<>();raws = stream.collect(Collectors.toList());for (String s:raws) {//System.out.println(s);}
} catch(IOException e) {e.printStackTrace();
}      

内置包装类

Object类是所有类的父类,如果一个类被定义后,没有指定继承的父类,那么默认父类就是Object类。因此Object类中定义的方法,其他类也可以用:如equals()和getClass()。

public static void printClassinfo(Object obj){//获取类名System.out.println("类名:"+obj.getClass().getName());//获取父类名System.out.println("父类:"+obj.getClass().getSuperclass().getName());System.out.println("实现的接口有:");//获取实现的接口并输出for(int i=0;i<obj.getClass().getInterfaces().length;i++){System.out.println(obj.getClass().getInterfaces()[i] + "\n");}}

System类

构造方法是private,所以不能创建它的对象,不能实例化它。其内部的成员变量和方法都是static的,可以调用。成员变量有:

  1. PrintStream out 标准输出流,如println就是out的方法,不是System的方法
  2. InputStream in 标准输入流
  3. PrintStream err 标准错误输出流
public void contextLoads() {int c;try {// 使用System.in的话读汉字会出错,用InputStreamReader// 并指定编码集才可以c = System.in.read(); //InputStreamReader in = new InputStreamReader(System.in, "UTF-8");//c = in.read();while (c != '\r') {System.out.print((char) c);//c = in.read();c = System.in.read(); }} catch(IOException e) {System.out.println("\nThis is IOException: \n");System.out.println(e.toString());} finally {System.out.println("\nThis is finally bloc: \n");System.err.println();}}

常用方法

  1. 数组复制
    arraycopy方法:从原数组中截取一段,替换到目标数组中
    System.arraycopy(dataType[] srcArray,int srcIndex,dataType[] destArray,int destIndex,int length)此方法要求srcIndex+length <= srcArray.length且destIndex+length <= destArray.length
    如果目标数组存在,不会重构,相当于替换部分元素
    System.arraycopy(scores,0,newScores,2,8);
    这里表示使用scores数组的[0,8)替换newScores数组的[2, 10)

  2. 获取当前的计算机时间

long start=System.currentTimeMillis();
// code block
long end = System.currentTimeMillis();
double time=(end-start) / 1000.0;

因为获取的都是毫秒,要除以1000换算到秒

  1. 终止当前正在运行的Java虚拟机
public static void exit(int status)

status为0时表示正常退出,非0时是异常。在图形界面编程中实现程序的退出功能。

  1. 获得系统级的参数
System.getProperty(属性名);System.out.println(System.getProperty("java.version"));System.out.println(System.getProperty("java.home"));System.out.println(System.getProperty("os.name"));System.out.println(System.getProperty("os.version"));System.out.println(System.getProperty("user.name"));System.out.println(System.getProperty("user.home"));System.out.println(System.getProperty("user.dir")); 

Number类

Number类是一个抽象类,属于java.lang,数字类包装类都是Number的子类。它定义了一些抽象方法,以各种不通过数字格式返回对象的值,如xxxValue()方法,就是将Number对象转换为xxx数据类型的值返回。抽象类是不能直接实例化的,要实例化具体的子类:

Number num = new Double(12.5);
System.out.println("返回 int 类型的值:"+num.intValue());

各个子类中都有类似方法,替换类型即可

Integer类常用方法

Integer integer1=new Integer(100); //以 int 型变量作为参数创建 Integer 对象 Integer integer2=new Integer(“100”); //以 String 型变量作为参数创建 Integer 对象
Integer.parseInt(str)	String转int
Integer.toString(i)	int转String
Integer.toBinaryString(num)	int转二进制字符串
Integer.toHexString(num)	
Integer.toOctalString(num)	
compareTo(Integer other)	比较两个Integer带的数值,相等返回0;如果小于other返回负值,大于other返回正值
valueOf(String s)	返回保存指定的String值的Integer对象
int month = Integer.valueOf(date.substring(5,7));
如果需要解析的字符串有前导0,如"02",会正常解析为2
intValue()	返回这个Integer带的int值

Integer类的常量
int max_value=Integer.MAX_VALUE;	2^31-1, 2147483647
Integer.MIN_VALUE;	-2^31, -2147483648
Integer.SIZE	32
Class c=Integer.TYPE	int

Float和Double

Float类常用方法
构造函数的参数可以带double,float,String
Float.parseFloat(str)	字符串转float
Float.toString(f)	float转字符串
isNaN(float v)	v是非数字值,返回true
isNaN()	此Float是非数字值,返回true
valueOf(String s)	返回保存指定String值的Float对象

Float类常用常量(可以用反射去看)

getFields() getDeclareFields()
System.out.println(Float.MAX_VALUE); //3.4028235E38
System.out.println(Float.MIN_NORMAL); // 1.17549435E-38
System.out.println(Float.MIN_VALUE); // 1.4E-45
System.out.println(Float.MAX_EXPONENT); // 127
System.out.println(Float.MIN_EXPONENT); // -126
System.out.println(Float.SIZE); // 32

Double的常用方法与Float的类似,直接替换为Double即可

System.out.println(Double.MAX_VALUE); // 1.7976931348623157E308
System.out.println(Double.MIN_NORMAL); // 2.2250738585072014E-308
System.out.println(Double.MIN_VALUE); // 4.9E-324
System.out.println(Double.MAX_EXPONENT); // 1023
System.out.println(Double.MIN_EXPONENT); // -1022
System.out.println(Double.SIZE); // 64

Boolean和Byte

Boolean(boolean boolValue); 
Boolean(String boolString);
System.out.println(Byte.MAX_VALUE); // 127
System.out.println(Byte.MIN_VALUE); // -128
System.out.println(Byte.SIZE); // 8

Character类
包含一个char。常用方法:
is系列:isDigit(char ch) isLowerCase(char ch) isUpperCase(char ch)
isLetter(int codePoint) isLetterOrDigit(int codePoint)

to系列:char toLowerCase(char ch) char toUpperCase(char ch)

另外,compareTo返回的是两个字符的标准代码差值,如

Character character=new Character('A');
int result1=character.compareTo(new Character('V'));
System.out.println(result1);    // 输出:-21
int result2=character.compareTo(new Character('B'));
System.out.println(result2);    //输出:-1
int result3=character.compareTo(new Character('1'));
System.out.println(result3);    //输出:16

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/699369.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建天花——Dynamo for Revit2022

今天我们来聊一个期待已久的功能——生成天花&#xff0c;经过了这么多年的迭代&#xff0c;Revit终于开放了生成天花的API&#xff0c;而且功能还不错&#xff0c;是经过优化的&#xff0c;不过目前我手里还没拿到SDK&#xff0c;就不截图了。 而且新增的天花API不是在Docume…

axios是如何实现的(源码解析)

1 axios的实例与请求流程 在阅读源码之前&#xff0c;先大概了解一下axios实例的属性和请求整体流程&#xff0c;带着这些概念&#xff0c;阅读源码可以轻松不少&#xff01; 下图是axios实例属性的简图。 可以看到axios的实例上&#xff0c;其实主要就这三个东西&#xff1a…

Sora是什么?

文章目录 前言Sora是什么&#xff1f;功能特色优点 缺点Sora模型的工作原理如何使用Sora模型Sora模型的应用场景Sora模型带来的问题虚假信息版权问题 后记 前言 Sora是美国人工智能研究公司OpenAI发布的一款令人惊叹的人工智能文生成视频大模型。近年来&#xff0c;人工智能技…

无人机基础技术,固定翼无人机动力系统技术详解,无人机飞行控制系统技术

推重比选择 推重比&#xff0c;是指无人机发动机推力/拉力与无人机飞行重力之比。该参数是衡量动力系统乃至整机性能的重要参数&#xff0c;很大程度上影响飞行性能。固定翼无人机的动力系统在配置时选择的推重比必须达到或超出设计的推重比。 重量要求 翼载荷是无人机单位面…

07 STL 简介

目录 什么是STLSTL的版本STL的六大组件STL的重要性如何学习STLSTL的缺陷 1. 什么是STL c标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构和算法的软件框架 2. STL的版本 原始版本 Alexander Stepanov、Meng Lee在惠普实验室的…

java: warning: source release 11 requires target release 11 解决办法

遇到问题 运行项目时报如下错 java: warning: source release 11 requires target release 11 原因&#xff1a;创建项目的时候选择的java11版本&#xff0c;现在用java8版本运行就会报这个错 查看项目的iml文件中LANGUAGE_LEVEL“JDK_xx”是多少 .iml 文件是 IntelliJ ID…

代码随想录算法训练营第四十一天|416. 分割等和子集。

416. 分割等和子集 题目链接&#xff1a;分割等和子集 题目描述&#xff1a; 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 解题思路&#xff1a; 本题直接套用0-1背包问题确定以下四点 1、背包…

python保存网页为PDF

在互联网时代&#xff0c;网页是我们获取信息的重要来源。然而&#xff0c;有时我们可能希望将特定的网页保存为PDF格式&#xff0c;以便在没有网络连接的情况下查看或分享。Python作为一种强大的编程语言&#xff0c;可以帮助我们实现这一需求。本文将介绍如何使用Python将网页…

数据结构:树形数据结构

1. 树的基本概念 在计算机科学中&#xff0c;树是一种非常重要的数据结构&#xff0c;用于模拟现实世界中的层次关系。它由一组节点和一组连接这些节点的边组成&#xff0c;节点之间的关系是一对多的关系&#xff0c;其中一个节点称为父节点&#xff0c;它下面的节点称为子节点…

如何将建筑白模叠加到三维地球上?

​ 通过以下方法可以将建筑白模叠加到三维地球上。 方法/步骤 下载三维地图浏览器 http://www.geosaas.com/download/map3dbrowser.exe&#xff0c;安装完成后桌面上出现”三维地图浏览器“图标。 2、双击桌面图标打开”三维地图浏览器“ 3、点击“建筑白模”菜单&…

我一直想给自己辩护

哈喽&#xff0c;大家好&#xff0c;我叫人宅&#xff0c;这里特意和大家聊聊关于我的课程问题。 很多学员私下讨论我的课程&#xff0c;太难了&#xff0c;有的甚至准备去报个培训班。即使我们花了那么大精力来做入门引导&#xff0c;还是觉得有难度。 还有课程中有嵌套课程…

欢迎 Gemma: Google 最新推出开源大语言模型

今天&#xff0c;Google 发布了一系列最新的开放式大型语言模型 —— Gemma&#xff01;Google 正在加强其对开源人工智能的支持&#xff0c;我们也非常有幸能够帮助全力支持这次发布&#xff0c;并与 Hugging Face 生态完美集成。 Gemma 提供两种规模的模型&#xff1a;7B 参数…

ES6中的Map数据结构的键可以是哪些数据类型

Map 的键可以是任何数据类型&#xff0c;包括对象、函数、原始类型等。 1. 原始类型作为键&#xff1a; let primitiveKeyMap new Map(); primitiveKeyMap.set(1, One); // 数字作为键 primitiveKeyMap.set(name, Alice); // 字符串作为键 primitiveKeyMap.set(true, True);…

浅拷贝导致的bug

错误代码&#xff1a; //初始化formTableData的值 const formTableData ref({saleOrderTime:,saleOrderDetails:[] });const showModal async (item) > {//调接口获取后端返回的数据let data (await api.searchSaleOrderById({saleOrderId:item.id})).dataconsole.log(&…

文本处理三驾马车之 sed

sed 是 stream editor 的缩写&#xff0c;中文称之为“流编辑器”。 sed command file command 部分&#xff0c;针对每行要进行的处理file&#xff0c;要处理的文件 Actions d&#xff1a;删除该行p&#xff1a;打印该行i&#xff1a;在行的前面插入新行a&#xff1a;在行的后…

全流程点云机器学习(一)使用CloudCompare自制sharpNet数据集

前言 这不是高支模项目需要嘛&#xff0c;他们用传统算法切那个横杆竖杆流程复杂耗时很长&#xff0c;所以想能不能用机器学习完成这些工作&#xff0c;所以我就来整这个工作了。 工欲善其事&#xff0c;必先利其器&#xff0c;在正式开始之前&#xff0c;我们先要搞懂如何切…

API接口实现自动化数据同步

一、API的核心作用 API是现代电子商务生态系统中不可或缺的组成部分&#xff0c;它使得不同平台和服务之间的数据共享变得可能。通过API&#xff0c;开发者可以访问到商品信息、用户评价、销售数据等&#xff0c;这些数据对于市场分析、库存管理和用户体验优化至关重要。 二、…

每日leetcode--删除有序数组中的重复项

问题描述 给定一个包含重复元素的整数列表nums&#xff0c;我们需要移除其中的重复元素&#xff0c;并返回去重后的列表长度。 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 解决方案&#xff1a; 我们可以使用一个额外的列表来存储不重复的元素&#xff…

Linux 开启防火墙 --- FirewallD is not running 问题修复

问题 在配置SSL认证后&#xff0c;需要放开防火墙的443端口&#xff0c;出现了FirewallD is not running错误 [rootxxx ~]# firewall-cmd --zonepublic --add-port443/tcp --permanent FirewallD is not running解决 只需要开启防火墙即可。 【1】先通过systemctl status fir…

旅游分享系列之:福建旅游攻略

旅游分享系列之&#xff1a;福建旅游攻略 一、漳州1.福建土楼2.云水谣3.四菜一汤景点 二、厦门1.园林博览苑2.海上自行车道3.山海步道4.海滩5.闽南菜6.落日 三、泉州1.衙口沙滩2.海上日出3.珞珈寺4.海滩烟花 一、漳州 游玩2个景点&#xff1a;云水谣&#xff0c;四菜一汤可以住…