第七周

本周也是坚持学习了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);


    }
}
复制代码

 

 

posted @   漏网鲨鱼  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示