第七周
本周也是坚持学习了Java
package Test; import java.util.ArrayList; import java.util.IllegalFormatCodePointException; import java.util.Scanner; /** * ClassName: demo1 * Package: Test * Description: * * @Author: 20213923ysf * @Create: 2023/7/30 - 20:22 */ public class demo1 { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); Scanner sc = new Scanner(System.in); while (true) { System.out.println("输入一个整数"); String numStr = sc.nextLine(); int num = Integer.parseInt(numStr); if (num < 1 || num > 100) { System.out.println("数字录入错误"); continue; } list.add(num); int sum = getSum(list); if (sum > 200) { System.out.println("集合中数据和已超过200"); System.out.println(sum); break; } } } private static int getSum(ArrayList<Integer> list) { int sum = 0; for (int i = 0; i < list.size(); i++) { sum = sum + list.get(i); } return sum; } }
package Test; /** * ClassName: demo2 * Package: Test * Description: * * @Author: 20213923ysf * @Create: 2023/7/30 - 20:33 */ public class demo2 { public static void main(String[] args) { String str = "123456789"; //校验字符串,将异常数据过滤 if (!str.matches("[1-9]\\d{0,9}")) { System.out.println("数据格式有误"); } else { System.out.println("数据格式正确"); //定义一个变量,表示最终结果 int number = 0; //遍历字符串得到每一个字符 for (int i = 0; i < str.length(); i++) { int c = str.charAt(i) - '0'; number = number * 10 + c; } System.out.println(number); } } }
package Test; /** * ClassName: demo3 * Package: Test * Description: * * @Author: 20213923ysf * @Create: 2023/7/30 - 20:41 */ public class demo3 { public static void main(String[] args) { //定义一个方法,实现toBinaryString方法的效果,将一个十进制整数转为字符串表示的二进制 System.out.println(toBinaryString(100)); } public static String toBinaryString(int number) { StringBuilder sb = new StringBuilder(); while (true) { if (number == 0) { break; } int remaindar = number % 2; //倒着拼接 sb.insert(0, remaindar); number = number / 2; } return sb.toString(); } }
package regex; /** * ClassName: demo1 * Package: regex * Description: * * @Author: 20213923ysf * @Create: 2023/7/29 - 19:15 */ public class demo1 { public static void main(String[] args) { //第一部分:1表示只能以1开头 //第二部分:【3-9】表示只能是3到9之间的数 //第三部分:\\d{9}表示任意数字能出现且只能出现9次 /*String regex1 = "1[3-9]\\d{9}"; System.out.println("12568546856".matches(regex1));//false System.out.println("13568546856".matches(regex1));//true System.out.println("13400106212".matches(regex1));//true */ /* * */ String regex2 ="[1-9][0-9]{4,10}"; System.out.println("1684129751".matches(regex2)); } }
package regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* ClassName: demo2
* Package: regex
* Description:
*
* @Author: 20213923ysf
* @Create: 2023/7/30 - 10:50
*/
public class demo2 {
public static void main(String[] args) {
String str = "Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11," +
"因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在未来不久Java17也会逐渐登上历史舞台";
//method1(str);
//1.获取正则表达式对象
Pattern p = Pattern.compile("Java\\d{0,2}");
//2.获取文本匹配器对象
//拿着m去读取str,找符合p规则的子串
Matcher m = p.matcher(str);
//3.利用循环获取
while (m.find()){
String s = m.group();
System.out.println(s);
}
}
private static void method1(String str) {
//Pattern:表示正则表达式
//Matcher:文本匹配器,作用是按照正则表达式的规则取读取字符串,从头开始读取。
// 在大串中找符合匹配规则的子串。
//获取正则表达式对象
Pattern p = Pattern.compile("Java\\d{0,2}");
//获取文本匹配器对象
//m:文本匹配器对象
//str:大串
//p:规则
//m要在str中找符合规则的小串
Matcher m = p.matcher(str);
//拿着文本匹配器从头开始读取,寻找是否有满足规则的子串
//如果没有,方法返回false
//如果有,返回true。在底层记录子串的起始索引和结束索引+1
//0,4
boolean b = m.find();
//方法底层会根据find方法记录的索引进行字符串的截取
//subString(起始索引,结束索引);包头不包尾
//(0,4)但是不包含4索引
//会把截取的小串进行返回。
String s1 = m.group();
System.out.println(s1);
//第二次调用find的时候,会继续读取后面的内容
//读取第二个满足要求的子串,方法会继续返回true
//并把第二个子串的起始索引和结束索引+1,进行记录
b = m.find();
//第二次调用group方法的时候,会根据find方法记录的索引再次截取子串
String s2 = m.group();
System.out.println(s2);
}
}
package regex; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * ClassName: demo3 * Package: regex * Description: * * @Author: 20213923ysf * @Create: 2023/7/30 - 11:27 */ public class demo3 { public static void main(String[] args) throws IOException { //创建一个URL对象 URL url = new URL("https://m.sengzan.com/jiaoyu/29104.html?ivk sa=10258831"); //连上这个网址 //细节:保证网络畅通 URLConnection conn = url.openConnection(); //创建一个对象去读取网络中的数据 BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; //获取正则表达式对象 String regex = "[1-9]\\d{17}"; Pattern pattern = Pattern.compile(regex); //读取时每次读一整行 while ((line = br.readLine())!=null){ //拿着文本匹配器对象matcher按照pattern的规则去读取当前这一行信息 Matcher matcher = pattern.matcher(line); while (matcher.find()){ System.out.println(matcher.group()); } } br.close(); } }
package regex; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * ClassName: demo4 * Package: regex * Description: * * @Author: 20213923ysf * @Create: 2023/7/30 - 11:50 */ public class demo4 { public static void main(String[] args) { String str = "Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11," + "因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在未来不久Java17也会逐渐登上历史舞台"; //?表示为前面的数据Java //m表示Java后要跟随的数据 //但是读取时只获取前半部分 String regex1 = "((?i)Java)(?=8|11|17)";//(?i)Java)表示第一部分为忽略大小写的Java String regex2 = "((?i)Java)(8|11|17)";//获取带版本号的 String regex3 = "((?i)Java)(?:8|11|17)";//获取带版本号的 String regex4 = "((?i)Java)(?!8|11|17)";//!表示Java后面出现8/11/17的不获取 Pattern p = Pattern.compile(regex2); Matcher m = p.matcher(str); while (m.find()){ System.out.println(m.group()); } } }
package regex; /** * ClassName: demo5 * Package: regex * Description: * * @Author: 20213923ysf * @Create: 2023/7/30 - 13:41 */ public class demo5 { public static void main(String[] args) { String str = "我要学学编编编程程程程程"; //(.)表示把重复内容的第一个字符看做一组 //\\1表示第一字符再次出现 //+ 至少一次 //$1 表示把正则表达式中的第一组内容再拿出来使用 String result = str.replaceAll("(.)\\1+", "$1"); System.out.println(result); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix