21章 规则集和映射

1.同20章 线性表、栈、队列和优先队列的第10题。

2.同20章 线性表、栈、队列和优先队列的第1题。

3.修改程序清单21-7中的程序。如果关键字在注释或者字符串中,则不进行统计。将Java文件名从命令行传递。

import java.io.*;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;public class Test {public static final String[] keyWordsArray = {"abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "continue", "default", "do", "double", "else", "enum", "extends", "final", "finally", "float", "for", "if", "implements", "import", "instanceof", "int", "interface", "long", "native", "new", "package", "private", "protected", "public", "return", "short", "static", "strictfp", "super", "switch", "synchronized", "this", "throw", "throws", "transient", "try", "void", "volatile", "while"};public static final Set<String> keyWordSet = new HashSet<>(Arrays.asList(keyWordsArray));public static void main(String[] args) {if (args.length != 1) {System.err.println("命令行参数有误!");return;}int r = countKeyWords(new File(args[0]));if (r == -1)System.err.println("文件打开失败!");elseSystem.out.println("有" + r + "个Java关键字!");}public static int countKeyWords(File file) {int count = 0;try (FileReader reader = new FileReader(file)) {int c;boolean lineNote = true, blockNote = true;StringBuilder sb = new StringBuilder();while ((c = reader.read()) != -1)switch ((char) c) {case '/':if ((c = reader.read()) == -1) return count;if ((char) c == '/') lineNote = false;else if ((char) c == '*') blockNote = false;if (keyWordSet.contains(sb.toString())) ++count;sb.setLength(0);break;case '\n':if (!lineNote) {lineNote = true;break;}case ' ':case '\t':if (keyWordSet.contains(sb.toString())) ++count;sb.setLength(0);break;case '*':if ((c = reader.read()) == -1) return count;if ((char) c == '/') blockNote = true;break;default:if (lineNote && blockNote) sb.append((char) c);}} catch (IOException e) {return -1;}return count;}
}

4.编写一个程序,提示用户输入一个文本文件名,然后显示文件中的元音和辅音的数目。使用规则集存储元音AEIOU

public static void main(String[] args) {Map<Character, Integer> map = new HashMap<>(Map.of('A', 0, 'E', 0, 'I', 0, 'O', 0, 'U', 0));System.out.println("请输入文件名:");Scanner scanner = new Scanner(System.in);String fileName = scanner.next();scanner.close();try (FileReader reader = new FileReader(fileName)) {int c;while ((c = reader.read()) != -1)switch ((char) c) {case 'A':case 'a':map.put('A', map.get('A') + 1);break;case 'E':case 'e':map.put('E', map.get('E') + 1);break;case 'I':case 'i':map.put('I', map.get('I') + 1);break;case 'O':case 'o':map.put('O', map.get('O') + 1);break;case 'U':case 'u':map.put('U', map.get('U') + 1);}map.forEach((k, v) -> System.out.println("字母" + k + "出现了" + v + "次"));} catch (IOException e) {System.err.println("文件打开失败!");}
}

5.编写一个程序,将一个Java程序转换为一个HTML文件。在HTML文件中,关键字、注释和字面量分别用粗体的深蓝色、绿色和蓝色显示。使用命令行传递Java文件和HTML文件。例如,下面的命令

java Exercise21_05 Welcome.java Welcome.html

将Welcome.java转换为Welcome.html。下图a显示了一个Java文件,它对应的HTML文件如图b所示。

5

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Set;public class JavaToHtmlConverter {public static final Set<String> KEYWORDS = Set.of("abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", "continue", "default", "do", "double", "else", "enum", "extends", "final", "finally", "float", "for", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", "native", "new", "package", "private", "protected", "public", "return", "short", "static", "strictfp", "super", "switch", "synchronized", "this", "throw", "throws", "transient", "try", "void", "volatile", "while");public static void main(String[] args) {if (args.length != 2) {System.err.println("命令行参数有误!");return;}try {convert(args[0], args[1]);} catch (IOException e) {e.printStackTrace();}}public static void convert(String javaFilePath, String htmlFilePath) throws IOException {FileReader reader = new FileReader(javaFilePath);FileWriter writer = new FileWriter(htmlFilePath);writer.write("<!DOCTYPE html>\n");writer.write("<html>\n");writer.write("<head>\n");writer.write("<title>Java Source Code as HTML</title>\n");writer.write("<style>\n");writer.write(".keyword { color: darkblue; font-weight: bold; }\n");writer.write(".comment { color: green; }\n");writer.write(".literal { color: blue; }\n");writer.write("</style>\n");writer.write("</head>\n");writer.write("<body>\n");writer.write("<pre>\n");int c;StringBuilder sb = new StringBuilder();boolean lineNote = false, blockNote = false;String s;while ((c = reader.read()) != -1)switch ((char) c) {case '/':if (lineNote || blockNote) {writer.write((char) c);break;}if ((c = reader.read()) == -1) {writer.write(sb.toString());writer.write("/\n</pre>\n</body>\n</html>");reader.close();writer.close();return;}if (!sb.isEmpty() && sb.charAt(sb.length() - 1) == '\'' && (char) c == '\'') {sb.deleteCharAt(sb.length() - 1);s = sb.toString();if (!s.isEmpty())if (KEYWORDS.contains(s)) {writer.write("<span class=\"keyword\">");writer.write(s);writer.write("</span>");} else if (isLiteral(s)) {writer.write("<span class=\"literal\">");writer.write(s);writer.write("</span>");} elsewriter.write(s);writer.write("<span class=\"literal\">'/'</span>");break;}s = sb.toString();if ((char) c == '/') {if (KEYWORDS.contains(s)) {writer.write("<span class=\"keyword\">");writer.write(s);writer.write("</span> <span class=\"comment\">//");lineNote = true;sb.setLength(0);break;}if (!s.isEmpty()) writer.write(s);writer.write("<span class=\"comment\">//");lineNote = true;break;}if ((char) c == '*') {if (KEYWORDS.contains(s)) {writer.write("<span class=\"keyword\">");writer.write(s);writer.write("</span> <span class=\"comment\">");blockNote = true;sb.setLength(0);break;}if (!s.isEmpty()) writer.write(s);writer.write("<span class=\"comment\">/*");blockNote = true;break;}if (!s.isEmpty()) writer.write(s);writer.write('/');writer.write(c);break;case '\"':if (lineNote || blockNote || !sb.isEmpty()) {writer.write((char) c);break;}sb.append('\"');while ((char) (c = reader.read()) != '\"') {if (c == -1) {writer.write(sb.toString());writer.write("\n</pre>\n</body>\n</html>");reader.close();writer.close();return;}if (!sb.isEmpty() && sb.charAt(sb.length() - 1) == '/') {if ((char) c == '/') {sb.deleteCharAt(sb.length() - 1);writer.write(sb.toString());sb.setLength(0);writer.write("<span class=\"comment\">//");lineNote = true;break;}if ((char) c == '*') {sb.deleteCharAt(sb.length() - 1);writer.write(sb.toString());sb.setLength(0);writer.write("<span class=\"comment\">/*");blockNote = true;break;}}sb.append((char) c);}if (!lineNote && !blockNote) {writer.write("<span class=\"literal\">");writer.write(sb.toString());sb.setLength(0);writer.write("\"</span>");}break;case '*':if (!blockNote) {sb.append('*');break;}if ((c = reader.read()) == -1) {writer.write(sb.toString());writer.write("*\n</pre>\n</body>\n</html>");reader.close();writer.close();return;}if ((char) c == '/') {blockNote = false;writer.write("*/</span>");break;}writer.write('*');writer.write('/');break;case '\n':if (lineNote) {writer.write(sb.toString());sb.setLength(0);writer.write("</span>\n");lineNote = false;break;}case ' ':case '\t':case '(':case '[':case '{':case ';':case ':':case ')':case ']':case '}':case '.':case ',':case '\r':case '=':case '+':case '-':case '&':case '|':case '~':case '^':case '!':case '<':case '>':case '?':s = sb.toString();if (s.isEmpty()) {writer.write(c);break;}if (lineNote || blockNote) {writer.write(s);writer.write(c);sb.setLength(0);break;}if (KEYWORDS.contains(s)) {writer.write("<span class=\"keyword\">");writer.write(s);writer.write("</span>");} else if (isLiteral(s)) {writer.write("<span class=\"literal\">");writer.write(s);writer.write("</span>");} elsewriter.write(s);sb.setLength(0);writer.write(c);break;default:if (lineNote || blockNote) {writer.write(c);break;}sb.append((char) c);}s = sb.toString();if (lineNote || blockNote) {writer.write(s);writer.write("</span>");} else if (KEYWORDS.contains(s)) {writer.write("<span class=\"keyword\">");writer.write(s);writer.write("</span>");} else if (isLiteral(s)) {writer.write("<span class=\"literal\">");writer.write(s);writer.write("</span>");} elsewriter.write(s);writer.write("\n</pre>\n</body>\n</html>");reader.close();writer.close();}// 判断是否是字符或者数字private static boolean isLiteral(String word) {return word.matches("'.'") || word.matches("[-+]?(?:\\b\\d+(?:\\.\\d*)?(?:[eE][-+]?\\d+)?[fF]?|[lL]?\\b\\d+\\b)");}
}

6.编写一个程序,读取不确定个数的整数,然后查找其中出现频率最高的数字。当输入为0时,表示结束输入。例如,如果输入的数据是2 3 40 3 5 4 -3 3 3 2 0,那么数字3的出现频率是最高的。如果出现频率最高的数字不是一个而是多个,则应该将它们全部报告。例如,在线性表9 30 3 9 3 2 4中,3和9都出现了两次,所以3和9都应该被报告。

import java.util.HashMap;
import java.util.LinkedList;
import java.util.Scanner;public class Test {public static void main(String[] args) {HashMap<Integer, Integer> map = new HashMap<>();LinkedList<Integer> maxNumList = new LinkedList<>();Scanner scanner = new Scanner(System.in);int x, maxNum = 0;while ((x = scanner.nextInt()) != 0) {int v;if (map.containsKey(x)) {v = map.get(x);map.put(x, ++v);} elsemap.put(x, v = 1);if (v > maxNum) {maxNum = v;maxNumList.clear();maxNumList.push(x);} else if (v == maxNum)maxNumList.push(x);}scanner.close();System.out.println(maxNumList);}
}

7.改写程序清单21-9,将单词按出现次数的升序显示。

import java.util.*;public class Test {public static void main(String[] args) {String text = "Good morning. Have a good class. Have a good visit. Have fun!";String[] words = text.split("[\\s+\\p{P}]");HashMap<String, Integer> map = new HashMap<>();for (String word : words)if (!word.isEmpty()) {String s = word.toLowerCase();map.put(s, map.getOrDefault(s, 0) + 1);}ArrayList<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {@Overridepublic int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {return o1.getValue().compareTo(o2.getValue());}});for (Map.Entry<String, Integer> entry : list) System.out.println(entry.getKey() + '\t' + entry.getValue());}
}

8.改写程序清单21-9,从文本文件中读取文本,文本文件名作为命令行参数传递。单词由空格、标点符号(,;.:?)、引号('")以及括号分隔。单词计数时不区分大小写(例如,认为Good和good是一样的单词)。单词必须以字母开头。以单词的字母顺序显示输出,每个单词前面显示其出现次数。

import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.TreeMap;
import java.util.function.BiConsumer;public class Test {public static void main(String[] args) throws IOException {if (args.length != 1) {System.err.println("命令行参数不正确!");return;}FileReader reader = new FileReader(args[0]);Map<String, Integer> map = new TreeMap<>();int c;StringBuilder sb = new StringBuilder();String s;while ((c = reader.read()) != -1)switch ((char) c) {case ' ':case ',':case ';':case '.':case ':':case '?':case '\'':case '"':case '(':case '[':case '{':case ')':case ']':case '}':case '\n':case '\r':if (sb.isEmpty()) break;if (!Character.isLetter(sb.charAt(0))) { // 认为只要以字母开头都是“单词”sb.setLength(0);break;}s = sb.toString().toLowerCase();sb.setLength(0);map.put(s, map.getOrDefault(s, 0) + 1);break;default:sb.append((char) c);}reader.close();map.forEach(new BiConsumer<String, Integer>() {@Overridepublic void accept(String s, Integer i) {System.out.println(String.valueOf(i) + '\t' + s);}});}
}

9.改写编程练习题8.37,在映射中存储州和其首府的条目。你的程序应该提示用户输入一个州,然后显示该州的首府。

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;public class Test {public static Map<String, String> provincialCapital;public static void main(String[] args) {getData();System.out.println("请输入省份:");Scanner scanner = new Scanner(System.in);String s = scanner.next();scanner.close();if (provincialCapital.containsKey(s))System.out.printf("%s的省会是%s。", s, provincialCapital.get(s));elseSystem.out.printf("不存在省会%s!", s);}private static void getData() {provincialCapital = new HashMap<>(29, 1f);provincialCapital.put("河北", "石家庄");provincialCapital.put("山西", "太原");provincialCapital.put("辽宁", "沈阳");provincialCapital.put("吉林", "长春");provincialCapital.put("黑龙江", "哈尔滨");provincialCapital.put("江苏", "南京");provincialCapital.put("浙江", "杭州");provincialCapital.put("安徽", "合肥");provincialCapital.put("福建", "福州");provincialCapital.put("江西", "南昌");provincialCapital.put("山东", "济南");provincialCapital.put("河南", "郑州");provincialCapital.put("湖北", "武汉");provincialCapital.put("湖南", "长沙");provincialCapital.put("广东", "广州");provincialCapital.put("海南", "海口");provincialCapital.put("四川", "成都");provincialCapital.put("贵州", "贵阳");provincialCapital.put("云南", "昆明");provincialCapital.put("陕西", "西安");provincialCapital.put("甘肃", "兰州");provincialCapital.put("青海", "西宁");provincialCapital.put("台湾", "台北");provincialCapital.put("内蒙古", "呼和浩特");provincialCapital.put("广西", "南宁");provincialCapital.put("西藏", "拉萨");provincialCapital.put("宁夏", "银川");provincialCapital.put("新疆", "乌鲁木齐");}
}

10.重写程序清单21-7,读入一个Java源代码文件并且统计文件中每个关键字的出现次数。如果关键字是在注释中或者字符串字面值中,则不要进行统计。

import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;public class Test {public static final Set<String> keywords = Set.of("abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", "continue", "default", "do", "double", "else", "enum", "extends", "final", "finally", "float", "for", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", "native", "new", "package", "private", "protected", "public", "return", "short", "static", "strictfp", "super", "switch", "synchronized", "this", "throw", "throws", "transient", "try", "void", "volatile", "while");private static final Map<String, Integer> map = new TreeMap<>();public static void main(String[] args) throws IOException {if (args.length != 1) {System.err.println("命令行参数不正确!");return;}int c;StringBuilder sb = new StringBuilder();String s;FileReader reader = new FileReader(args[0]);// 第1位:是否是行注释// 第2位:是否是块注释// 第3位:是否是字符串byte isValid = 0;while ((c = reader.read()) != -1)switch ((char) c) {case '/':if (isValid != 0) break; // 不考虑字符串还未结束就开始行注释以及行注释中开始块注释的情况 (语法错误!)if ((c = reader.read()) == -1) {if (!sb.isEmpty()) {s = sb.toString();if (keywords.contains(s)) map.put(s, map.getOrDefault(s, 0) + 1);}printKeywordFrequency();return;}isValid = switch ((char) c) {case '/' -> 1;case '*' -> 2;default -> 0;};s = sb.toString();sb.setLength(0);if (keywords.contains(s)) map.put(s, map.getOrDefault(s, 0) + 1);break;case '"':if (isValid == 4) {isValid = 0;break;}if (isValid != 0) break;isValid = 4;s = sb.toString();sb.setLength(0);if (keywords.contains(s)) map.put(s, map.getOrDefault(s, 0) + 1);break;case '\n':if (isValid == 1) {isValid = 0;break;}case ' ':case '\t':case '\r':case '(':case ')':case '[':case ']':case '{':case '}':case ',':case '.':case ';':case '=':case '~':case '+':case '-':case '?':case '!':case '^':case '&':case '|':case '<':case '>':if (isValid != 0) break;if (sb.isEmpty()) break;s = sb.toString();if (keywords.contains(s)) map.put(s, map.getOrDefault(s, 0) + 1);sb.setLength(0);break;case '*':if (isValid == 0) {sb.append('*');break;}if (isValid != 2) break;if ((c = reader.read()) == -1) {if (!sb.isEmpty()) {s = sb.toString();if (keywords.contains(s)) map.put(s, map.getOrDefault(s, 0) + 1);}printKeywordFrequency();return;}if ((char) c == '/') isValid = 0;break;default:if (isValid == 0) sb.append((char) c);}reader.close();if (!sb.isEmpty()) {s = sb.toString();if (keywords.contains(s)) map.put(s, map.getOrDefault(s, 0) + 1);}printKeywordFrequency();}private static void printKeywordFrequency() {if (map.isEmpty())System.out.println("不存在关键字!");elsemap.forEach((s, i) -> System.out.printf("关键字%s出现了%d次。\n", s, i));}
}

14.重写程序清单12.18,为ListOfPendingURLslistOfTraversedURLs采用合适的新数据结构以提高性能。

import java.io.IOException;
import java.util.Scanner;public class Test {public static void main(String[] args) throws IOException {Scanner scanner = new Scanner(System.in);System.out.println("请输入一个地址:");String url = scanner.nextLine();scanner.close();WebCrawler crawler = new WebCrawler() {@Overridepublic void eachURL(String url) {System.out.println("Crawl: " + url);}};crawler.crawl(url);}
}
import java.io.IOException;
import java.net.URL;
import java.util.*;public abstract class WebCrawler {public void crawl(String rootURL) throws IOException {LinkedList<String> pendingURLs = new LinkedList<>();HashSet<String> traversedURLs = new HashSet<>();pendingURLs.add(rootURL);while (!pendingURLs.isEmpty() && traversedURLs.size() < 101) {String url = pendingURLs.poll();if (!traversedURLs.contains(url)) {traversedURLs.add(url);eachURL(url);getSubURLs(url, pendingURLs, traversedURLs);}}}public abstract void eachURL(String url);// 将所有的子地址插入到列表末尾,并排除exclusionSetprivate static void getSubURLs(String rootURL, List<String> list, Set<String> exclusionSet) throws IOException {URL url = new URL(rootURL);Scanner scanner = new Scanner(url.openStream());int currentIndex = 0;while (scanner.hasNext()) {String s = scanner.nextLine();currentIndex = s.indexOf("http:", currentIndex);while (currentIndex > 0) {int endIndex = s.indexOf('"', currentIndex);if (endIndex > 0) {String currentURL = s.substring(currentIndex, endIndex);if (exclusionSet == null || !exclusionSet.contains(currentURL)) list.add(currentURL);currentIndex = s.indexOf("http:", endIndex);} elsecurrentIndex = -1;}}}// 程序清单12-18的等价方法public static ArrayList<String> getSubURLs(String rootURL) throws IOException {ArrayList<String> list = new ArrayList<>();getSubURLs(rootURL, list, null);return list;}
}

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

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

相关文章

DeDeCMS靶场漏洞复现

打开靶场地址 姿势一&#xff1a;通过文件管理器上传webshell 1.登录后台 dedecms默认的后台登录地址为/dede 2.在附加管理里的文件式管理器中有文件上传 3.上传木马文件 4.访问木马文件 并连接 姿势二&#xff1a;修改模板文件获取webshell 1.点击模板里面的默认模板管理 …

SHL笔试测评系统题库考什么?如何通过综合测评|附性格测试104道

嘿&#xff0c;各位求职小伙伴们&#xff01;我是职小豚&#xff0c;今天就来带大家深入了解神秘又充满挑战的 SHL 笔试测评系统。 一、SHL 人才测评系统介绍 SHL 呀&#xff0c;那可是人才测评领域的超级大明星&#xff01;就像一个智慧的魔法师&#xff0c;用各种神奇的题目…

c++11标准(2)右值引用的衍生产物

欢迎来到博主的专栏&#xff1a;c杂谈 博主ID&#xff1a;代码小豪 文章目录 万能引用模板右值引用到底是左值还是右值完美转发 万能引用模板 当c11推出右值引用之后&#xff0c;我们所写的模板函数可以写成这样&#xff1a; template<class T> T&& Universal_…

[000-01-008].第08节:Sentinel 环境搭建

1.Sentinel的构成&#xff1a; 核心库-后台默认的端口是8719控制台-前台默认的是8080端口 2.2.搭建Sentinel环境&#xff1a; a.下载Sentinel&#xff1a; 1.sentinel官方提供了UI控制台&#xff0c;方便我们对系统做限流设置。可以在GitHub下载 b.下载后运行Sentinel&#…

【virtuoso】AMS数模混合仿真

一、新建Verilog文件 1.1 新建functional 文件 1.2 编写Verilog文件 module phv (ckv ,rst_n ,phv_n );input ckv ;input rst_n ;output reg [10:0] phv_n;always (posedge ckv) beginif(rst_n)phv_n < 11b0;elsephv_n <…

【C++】多态的认识和理解

个人主页 文章目录 ⭐一、多态的概念&#x1f384;二、多态的定义及实现1.多态的构成2.实现多态的条件3.虚函数的概念4.虚函数的重写和覆盖5.析构函数的重写6.协变7.override和 final关键字8.重载、重写/覆盖、隐藏这三者的区别 &#x1f3e0;三、纯虚函数和抽象类的关系&#…

纯血鸿蒙NEXT常用的几个官方网站

一、官方文档 https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/Readme-CN.md刚入门查看最多的就是UI开发模块&#xff0c;首先要熟悉组件使用 二、官方API参考 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/development-i…

JVM 调优篇7 调优案例2-元空间的优化解决

一 元空间 1.1 功能概述 方法区&#xff08;Method Area&#xff09;与 Java 堆一样&#xff0c;是各个线程共享的内存区域&#xff0c;它用于存储已被虚拟机加载的类信息、常量、即时编译器编译后的代码等数据。虽然Java 虚拟机规范把方法区描述为堆的一个逻辑部分&#xf…

【操作系统】二、进程管理:4.死锁(银行家算法、系统安全状态、静态分配策略、资源有序分配法)

五、死锁 文章目录 五、死锁1.产生1.1产生情况1.2产生的4个必要条件 2.处理方式2.1预防死锁2.1.1破坏互斥条件2.1.2破坏请求和保持条件2.1.3破坏不可抢占条件2.1.4破坏循环等待条件 2.2避免死锁2.2.1系统安全状态❗2.2.2银行家算法 2.3检测死锁2.4解除死锁 死锁&#xff1a;资源…

ubuntu安装wordpress(基于LNMP环境)

参考链接 Ubuntu安装LNMP 安装步骤 环境需要LNMP环境&#xff0c;如果没有安装可以参考ZATA—LNMP简单安装 在mysql中设置wordpress所用的用户名和密码 #1. 登录mysql mysql -uroot -p #2. 创建wordpress数据库 create database wordpress; #3. 创建新用户user&#xff0c;…

使用Java实现一个简单的B树

1.B树简介 B树是一个搜索树&#xff0c;数据结构可以抽象成如二叉树一样的树&#xff0c;不过它有平衡、有序、多路的特点。 平衡&#xff1a;所有叶子节点都在同一层。有序&#xff1a;任一元素的左子树都小于它&#xff0c;右子树都大于它。多路&#xff1a;B树的每个节点最多…

【Linux】文件权限与类型全解:你的文件安全指南

欢迎来到 CILMY23 的博客 &#x1f3c6;本篇主题为&#xff1a;文件权限与类型全解&#xff1a;你的文件安全指南 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法专题…

激光雷达点云处理—学习随记

一、激光雷达基本概念 激光雷达&#xff08;Light Detection and Ranging&#xff0c;LiDAR&#xff09;&#xff0c;是一种发射激光&#xff08;可见光-近红外&#xff09;于被瞄准物体表面并记录反射光被信号接收器接收到的时间以测定距离的方法。激光雷达通过以下公式确定物…

基于springboot酒店管理系统

酒店管理系统 552酒店管理系统 摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;…

【MySQL】查询语句之inner、left、right、full join 的区别

前言&#xff1a; INNER JOIN 和 OUTER JOIN 是SQL中常用的两种连接方式&#xff0c;用于从两表活多表中提取相关的数据。两者区别主要在于返回的 结果集 如何处理 匹配 与 不匹配 的行。 目录 1、INNER JOIN 2、OUTER JOIN 3、总结 1、INNER JOIN 称为内连接&#xff0c;只…

【Python机器学习】NLP信息提取——命名实体与关系

我们希望计算机能够从文本中提取信息和事实&#xff0c;从而略微理解用户所说的内容。例如&#xff0c;当用户说“提醒我星期一浏览***.org网站”&#xff0c;我们希望这句话触发当天后下一个周一的日程或者提醒的操作。 要触发上述操作&#xff0c;需要知道“我”代表一种特定…

5.内容创作的未来:ChatGPT如何辅助写作(5/10)

引言 在信息爆炸的时代&#xff0c;内容创作已成为连接品牌与受众、传递信息与知识、以及塑造文化与观念的重要手段。随着数字媒体的兴起&#xff0c;内容创作的需求日益增长&#xff0c;对创作者的写作速度和质量提出了更高的要求。人工智能&#xff08;AI&#xff09;技术的…

感谢问界M9一打二十,让我们买到这么便宜的BBA

文 | AUTO芯球 作者 | 雷慢 国产豪华车&#xff0c;终于扬眉吐气了&#xff0c; 你敢信吗&#xff1f;在50万以上豪华车中&#xff0c; 现在问界M9一款车的月销量&#xff0c; 是其他前20名销量的总和&#xff01; 要知道&#xff0c;它的对手是各种宝马、奔驰、雷克萨斯的…

私有化通讯工具:安全、高效、个性化,重塑企业沟通生态

在当今数字化时代&#xff0c;即时通讯已成为企业日常运营中不可或缺的一部分。随着数据安全和隐私保护意识的日益增强&#xff0c;越来越多的企业开始寻求更加安全、可控的沟通方式。私有化聊天工具应运而生&#xff0c;以其独特的核心优势&#xff0c;为企业构建了一个安全、…

VMware vSphere 8.0 Update 3b 发布下载,新增功能概览

VMware vSphere 8.0 Update 3b 发布下载&#xff0c;新增功能概览 vSphere 8.0U3 | ESXi 8.0U3 & vCenter Server 8.0U3 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-vsphere-8-u3/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页…