Java 超高频常见字符操作【建议收藏】
文章目录
- 前言
- 1. 字符串拼接
- 2. 字符串查找
- 3. 字符串截取
- 4. 字符串替換
- 5. 字符串分割
- 6. 字符串比较
- 7. 字符串格式化
- 8. 字符串空格处理
- 总结
前言
为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)
1. 字符串拼接
1. 使用 + 操作符:
String str1 = "Hello";
String str2 = ", ";
String str3 = "World";String result = str1 + str2 + str3;
这种方法是最简单的,通过使用 + 操作符可以将多个字符串连接在一起。Java会自动处理字符串拼接并创建一个新的字符串对象。
2. 使用 concat() 方法:
String str1 = "Hello";
String str2 = ", ";
String str3 = "World";String result = str1.concat(str2).concat(str3);
concat() 方法用于将一个字符串连接到另一个字符串的末尾。可以连续调用 concat() 方法来连接多个字符串。
3. 使用 StringBuilder 类:
StringBuilder 是一个可变的字符串类,适用于需要频繁修改字符串的情况,因为它不会创建多个中间字符串对象,从而提高了性能。
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("Hello");
stringBuilder.append(", ");
stringBuilder.append("World");String result = stringBuilder.toString();
在这种情况下,我们首先创建一个 StringBuilder 对象,然后使用 append() 方法来添加需要拼接的字符串,最后通过 toString() 方法将 StringBuilder 转换为不可变的 String。
4. 使用 StringBuffer 类:
StringBuffer 类与 StringBuilder 类 类似,但是是线程安全的,适用于多线程环境。
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("Hello");
stringBuffer.append(", ");
stringBuffer.append("World");String result = stringBuffer.toString();
与 StringBuilder 一样,我们可以使用 append() 方法来构建最终的字符串,然后通过 toString() 方法获取不可变的 String。
5. 使用 String.join() 方法(Java 8+):
这种方法更加简洁,特别适用于将多个字符串与指定的分隔符连接起来的情况。
String.join()
String str1 = "Hello";
String str2 = ", ";
String str3 = "World";String result = String.join(str2, str1, str3);
2. 字符串查找
1.使用 indexOf() 方法查找子字符串的位置:
indexOf() 方法用于查找一个字符串是否包含另一个子字符串,并返回第一次出现的位置索引。如果未找到,它将返回 -1。
String mainString = "Hello, World!";
String subString = "World";
int position = mainString.indexOf(subString);if (position != -1) {System.out.println("子字符串在主字符串中的位置是:" + position);
} else {System.out.println("子字符串未找到!");
}
2.使用 lastIndexOf() 方法查找最后一次出现的位置:
lastIndexOf() 方法与 indexOf() 方法类似,但它返回最后一次出现的位置索引。
String mainString = "Java is a powerful programming language. Java is also fun!";
String subString = "Java";
int position = mainString.lastIndexOf(subString);if (position != -1) {System.out.println("最后一次出现的位置是:" + position);
} else {System.out.println("子字符串未找到!");
}
3.使用 contains() 方法检查字符串是否包含子字符串:
contains() 方法用于检查一个字符串是否包含另一个子字符串,它返回一个布尔值。
String mainString = "This is a Java example.";
String subString = "Java";
boolean contains = mainString.contains(subString);if (contains) {System.out.println("主字符串包含子字符串!");
} else {System.out.println("主字符串不包含子字符串!");
}
4.使用正则表达式进行高级搜索:
Java 也支持使用正则表达式来进行复杂的字符串搜索。你可以使用 Pattern 和 Matcher 类来实现这一点。这允许你执行更复杂的模式匹配操作。
import java.util.regex.*;String text = "The quick brown fox jumps over the lazy dog.";
String pattern = "fox";Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher = compiledPattern.matcher(text);while (matcher.find()) {System.out.println("找到匹配字符串: " + matcher.group());
}
3. 字符串截取
1.使用 substring() 方法:
substring() 方法用于从一个字符串中截取子串,你可以指定截取的起始位置和结束位置。这个方法有两种形式:一种只传入起始位置,另一种传入起始位置和结束位置。
String mainString = "Hello, World!";// 截取从索引2到索引5之间的子串(包括索引2,但不包括索引5)
String subString1 = mainString.substring(2, 5);
System.out.println("截取子串1: " + subString1); // 输出 "llo"// 从索引7开始截取到字符串末尾
String subString2 = mainString.substring(7);
System.out.println("截取子串2: " + subString2); // 输出 "World!"
2.使用 split() 方法分割字符串:
split() 方法允许你根据某个分隔符将字符串拆分为子串,然后选择需要的子串。
String text = "apple,banana,grape";// 使用逗号作为分隔符拆分字符串
String[] fruits = text.split(",");for (String fruit : fruits) {System.out.println("水果: " + fruit);
}
3.使用正则表达式进行高级截取:
Java 的正则表达式库允许你根据复杂的模式来截取字符串。
import java.util.regex.*;String text = "The quick brown fox jumps over the lazy dog.";
String pattern = "\\b\\w+\\b"; // 匹配单词Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher = compiledPattern.matcher(text);while (matcher.find()) {System.out.println("匹配到的单词: " + matcher.group());
}
4. 字符串替換
1.使用 replace() 方法:
replace() 方法用于将指定的字符或子字符串替换为新的字符或子字符串。
String originalString = "Hello, World!";
String searchString = "World";
String replacementString = "Java";String modifiedString = originalString.replace(searchString, replacementString);
System.out.println("替换后的字符串: " + modifiedString);
输出:
替换后的字符串: Hello, Java!
2.使用 replaceAll() 方法进行正则表达式替换:
replaceAll() 方法允许你使用正则表达式进行更灵活的替换操作。
String originalString = "The quick brown fox jumps over the lazy dog.";
String pattern = "fox";
String replacementString = "cat";String modifiedString = originalString.replaceAll(pattern, replacementString);
System.out.println("替换后的字符串: " + modifiedString);
输出:
替换后的字符串: The quick brown cat jumps over the lazy dog.
3.使用 StringBuilder 进行替换:
如果需要进行多次替换或性能要求较高,可以使用 StringBuilder 类。
StringBuilder stringBuilder = new StringBuilder("Java is easy. Java is fun.");
String searchString = "Java";
String replacementString = "Python";
int index = stringBuilder.indexOf(searchString);
while (index != -1) {stringBuilder.replace(index, index + searchString.length(), replacementString);index = stringBuilder.indexOf(searchString);
}String modifiedString = stringBuilder.toString();
System.out.println("替换后的字符串: " + modifiedString);
输出:
替换后的字符串: Python is easy. Python is fun.
5. 字符串分割
1. 使用 split() 方法:
split() 方法是Java中最常用的字符串分割方法。它使用指定的正则表达式作为分隔符,将字符串分割成一个字符串数组。
String inputString = "apple,orange,banana,grape";
String[] fruits = inputString.split(",");System.out.println("分割后的水果:");
for (String fruit : fruits) {System.out.println(fruit);
}
输出:
分割后的水果:
apple
orange
banana
grape
2. 使用 StringTokenizer 类:
StringTokenizer 类是Java中另一种进行字符串分割的方式,它使用指定的分隔符将字符串分割成标记。
String inputString = "Java is a powerful programming language";
StringTokenizer tokenizer = new StringTokenizer(inputString);System.out.println("分割后的单词:");
while (tokenizer.hasMoreTokens()) {System.out.println(tokenizer.nextToken());
}
输出:
分割后的单词:
Java
is
a
powerful
programming
language
3. 使用正则表达式:
你也可以使用正则表达式作为分隔符,以实现更灵活的字符串分割。
String inputString = "Java123is456a789powerful";
String[] parts = inputString.split("\\d+");
System.out.println("分割后的部分:");
for (String part : parts) {System.out.println(part);
}
输出:
分割后的部分:
Java
is
a
powerful
4. 使用 Apache Commons Lang 库:
Apache Commons Lang 库提供了 StringUtils 类,其中有一个方便的 split() 方法,可以更容易地处理字符串分割。
import org.apache.commons.lang3.StringUtils;String inputString = "Java;C;C++;Python";
String[] languages = StringUtils.split(inputString, ';');System.out.println("分割后的编程语言:");
for (String language : languages) {System.out.println(language);
}
输出:
分割后的编程语言:
Java
C
C++
Python
6. 字符串比较
1. 使用 equals() 方法进行内容比较:
equals() 方法用于比较两个字符串的内容是否相同。它比较字符串的每个字符,而不仅仅是比较引用是否相等。
String str1 = "Hello";
String str2 = "World";
String str3 = "Hello";boolean isEqual1 = str1.equals(str2); // 返回 false
boolean isEqual2 = str1.equals(str3); // 返回 trueSystem.out.println("str1 和 str2 是否相等:" + isEqual1);
System.out.println("str1 和 str3 是否相等:" + isEqual2);
2. 使用 equalsIgnoreCase() 方法进行忽略大小写的内容比较:
equalsIgnoreCase() 方法与 equals() 方法类似,但它会忽略字符串的大小写。
String str1 = "Hello";
String str2 = "hello";boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // 返回 trueSystem.out.println("str1 和 str2 是否相等(忽略大小写):" + isEqualIgnoreCase);
3. 使用 compareTo() 方法进行字典顺序比较:
compareTo() 方法用于比较两个字符串的字典顺序。它返回一个整数,表示两个字符串之间的比较结果。
String str1 = "apple";
String str2 = "banana";
String str3 = "cherry";int result1 = str1.compareTo(str2); // 返回负数
int result2 = str2.compareTo(str1); // 返回正数
int result3 = str1.compareTo(str3); // 返回负数System.out.println("str1 和 str2 的比较结果:" + result1);
System.out.println("str2 和 str1 的比较结果:" + result2);
System.out.println("str1 和 str3 的比较结果:" + result3);
4. 使用 startsWith() 和 endsWith() 方法检查前缀和后缀:
startsWith() 方法用于检查字符串是否以指定的前缀开头,而 endsWith() 方法用于检查字符串是否以指定的后缀结尾。
String str = "Hello, World";boolean startsWithHello = str.startsWith("Hello"); // 返回 true
boolean endsWithWorld = str.endsWith("World"); // 返回 falseSystem.out.println("字符串是否以 Hello 开头:" + startsWithHello);
System.out.println("字符串是否以 World 结尾:" + endsWithWorld);
5. 使用 compareToIgnoreCase() 方法进行忽略大小写的字典顺序比较:
compareToIgnoreCase() 方法与 compareTo() 方法类似,但它会忽略字符串的大小写。
String str1 = "apple";
String str2 = "Banana";int result = str1.compareToIgnoreCase(str2); // 返回正数System.out.println("str1 和 str2 的比较结果(忽略大小写):" + result);
7. 字符串格式化
1. 使用 String.format()
String.format() 方法允许您创建格式化的字符串,类似于C语言中的 printf() 函数。它使用占位符来指定要插入的数据以及它们的格式。占位符由百分号 (%) 后跟一个字符组成,该字符表示插入数据的类型。以下是一些常见的占位符及其用法:
- %s :字符串。
- %d :整数。
- %f :浮点数。
- %n :换行符。
示例:
String name = "Alice";
int age = 30;
double salary = 50000.50;String formattedString = String.format("Name: %s, Age: %d, Salary: %.2f", name, age, salary);
System.out.println(formattedString);
输出:
Name: Alice, Age: 30, Salary: 50000.50
在上面的示例中,我们使用了 %s 、 %d 和 %.2f 占位符来插入字符串、整数和浮点数,并指定了浮点数保留两位小数。
2. 使用 printf()
printf() 方法是 System.out 对象的一个方法,它用于将格式化的字符串输出到控制台。与 String.format() 类似,它使用相同的占位符来格式化输出。
示例:
String name = "Bob";
int age = 25;
double height = 1.75;System.out.printf("Name: %s, Age: %d, Height: %.2f%n", name, age, height);
输出:
Name: Bob, Age: 25, Height: 1.75
8. 字符串空格处理
1. 删除空格:
- .使用 String 类的 trim() 方法删除字符串前后的空格。
- trim() 返回一个新的字符串,其中删除了前导和尾随的空格。
String text = " This is a text with spaces ";
String trimmedText = text.trim();
System.out.println(trimmedText); // 输出: "This is a text with spaces"
2. 替换空格:
- 使用 String 类的 replace() 方法替换字符串中的空格。
- 你可以将空格替换为其他字符或字符串。
String text = "Hello, World!";
String replacedText = text.replace(" ", "_");
System.out.println(replacedText); // 输出: "Hello,_World!"
3. 分割字符串:
- 使用 split() 方法将字符串拆分成字符串数组。
- 默认情况下,split() 使用空格作为分隔符,但你可以指定自定义分隔符。
String sentence = "This is a sample sentence";
String[] words = sentence.split(" "); // 使用空格分割成单词数组
4. 检查空格:
- 使用 contains() 方法检查字符串是否包含空格。
String text = "This has spaces";
boolean hasSpaces = text.contains(" "); // 返回 true
5. 统计空格的数量:
- 使用循环遍历字符串并计算空格的数量。
String text = "Count the spaces in this text";
int spaceCount = 0;
for (char c : text.toCharArray()) {if (c == ' ') {spaceCount++;}
}
System.out.println("空格数量:" + spaceCount); // 输出: "空格数量:5"
6. 替换多个连续空格:
- 使用正则表达式来替换连续的多个空格为单个空格。
String text = "Replace multiple spaces with one.";
String replacedText = text.replaceAll("\\s+", " ");
System.out.println(replacedText); // 输出: "Replace multiple spaces with one."
7. 处理制表符和换行符:
- 空白字符不仅包括空格,还包括制表符 (\t) 和换行符 (\n) 等。
- 你可以使用 replaceAll() 来处理它们,就像处理空格一样。
String textWithTabs = "This\tis\ta\ttab\tseparated\ttext";
String textWithNewlines = "This\nis\na\nnewline\nseparated\ntext";
总结
欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)
相关文章:
Java 超高频常见字符操作【建议收藏】
文章目录 前言1. 字符串拼接2. 字符串查找3. 字符串截取4. 字符串替換5. 字符串分割6. 字符串比较7. 字符串格式化8. 字符串空格处理 总结 前言 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一…...
MongoDB数据库网站网页实例-编程语言Python+Django
程序示例精选 PythonDjangoMongoDB数据库网站网页实例 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《PythonDjangoMongoDB数据库网站网页实例》编写代码,代码整洁,…...
开箱报告,Simulink Toolbox库模块使用指南(七)——S-Fuction Builter模块
S-Fuction Builter S-Fuction Builter模块,Mathworks官方Help对该部分内容的说明如下所示。 DFT算法的原理讲解和模块开发在前几篇文章中已经完成了,本文介绍如何使用S-Fuction Builter模块一步到位地自动开发DFT算法模块,包括建立C MEX S-Fu…...
spring-boot 操作 mongodb 数据库
如何使用 spring-boot 操作 mongodb 数据库 配置文件: spring:data:mongodb:host: 127.0.0.1database: fly_articleDbport: 27017# 可以采取 mysql 写法# uri: mongodb://127.0.0.1/fly_articleDb依赖信息: <?xml version"1.0" encoding"UTF-…...
JVM篇---第三篇
系列文章目录 文章目录 系列文章目录一、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?二、Java内存结构三、说说对象分配规则一、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文…...
建筑施工行业招投标资源众包分包系统站点开发
一款针对建筑、施工行业开发的程序系统平台,运营方可以招募企业发布招投标信息以及招聘信息。 核心功能:一、项目招投标众包发布和投标 企业可以根据自身资源或者实际需求发布参与招投标信息,程序后台可以管理、审核用户发布的信息。参与招…...
【Linux基础】Linux发展史
👉系列专栏:【Linux基础】 🙈个人主页:sunny-ll 一、前言 本篇主要介绍Linux的发展历史,这里并不需要我们掌握,但是作为一个合格的Linux学习者与操作者,这些东西是需要了解的,而且…...
openGauss学习笔记-90 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用重试中止事务
文章目录 openGauss学习笔记-90 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用重试中止事务 openGauss学习笔记-90 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用重试中止事务 在乐观并发控制(OCC)中&…...
【Docker】搭建 Docker 镜像仓库
文章目录 前言:公有仓库和私有仓库公共镜像仓库私有镜像仓库 一、搭建 Docker 镜像仓库1.1 搭建简化版的镜像仓库1.2 搭建带有图形化界面的镜像仓库1.3 配置 Docker 信任地址 二、向私有镜像仓库推送和拉取镜像2.1 推送本地镜像到私有仓库2.2 拉取私有仓库中的镜像 …...
Python数据攻略-Pandas的数据计算、拼接与可视化
如何将数据转化为有用的信息?在数据分析的世界里,仅仅拥有大量数据是不够的。需要有方法去“翻译”这些数据,让它们告诉我们一些有用的信息。 本篇文章要探讨的内容:如何使用Pandas进行数据计算、拼接和可视化,从而让数据“说话”。 文章目录 Pandas的数据计算基本数学运…...
【计算机网络】HTTPS协议详解
文章目录 一、HTTPS协议 介绍 1、1 HTTP协议不安全的体现 1、2 什么是 HTTPS协议 二、加密的一些概念 2、1 怎么理解加密 2、2 为什么要加密 2、3 常见的加密方式 2、2、1 对称加密 2、2、2 非对称加密 三、HTTPS协议探究加密过程 3、1 只使用对称加密 3、2 只是用非对称加密 3…...
Septentrio接收机二进制的BDS b2b改正数解码
Galileo的HAS和BDS B2b改正数为实时PPP提供了可能,要实现实时PPP解算,必须对对应的数据进行解码。由于没有做过解码的工作,现结合qzsl6tool代码对Septentrio的解码代码进行学习。 1. 二进制枕头的识别和解码 定义一个读取数据的类ÿ…...
nvm 管理 node版本
下载地址 https://nvm.uihtm.com/download.html 基础命令 查看所有可安装的node版本 nvm list available 查看本地已经安装的所有版本: nvm list 安装指定的node版本 nvm install 14.18.1 使用指定node版本 nvm use 14.18.1 卸载指定node版本 nvm uninstall …...
LeetCode 15.三数之和
三数之和 问题描述 LeetCode 15.三数之和 给你一个整数数组 nums,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k,同时还满足 nums[i] nums[j] nums[k] 0。请你返回所有和为 0 且不重复的三元组。 注意:答…...
Linux实用操作(固定IP、进程控制、监控、文件解压缩)
目录 一、快捷键 1、ctrl c强制停止 2、ctrl d退出或登出 3、历史命令搜索history 4、光标移动快捷键 5、清屏 二、软件安装 1、CentOS的yum命令 2、Ubantu的apt命令 三、systemctl命令 四、软连接 五、日期、时区 1、date命令 2、修改Linux时区为东八区 3、nt…...
Redis高可用之哨兵模式、集群
文章目录 一、Redis哨兵模式1.1 简介1.2 哨兵模式的作用1.3 哨兵结构1.4 故障转移机制(重要)1.5 主节点选举机制 二、部署Redis哨兵模式Step1 修改 Redis 哨兵模式的配置文件(所有节点操作)Step2 实现基于VIP(虚拟IP&a…...
Python数据攻略-DataFrame的创建与基础特性
在数据分析、科学计算或者任何需要处理表格数据的领域,DataFrame都是一个非常重要的工具。就像Excel让处理表格数据变得简单一样,DataFrame也有类似的功能,但更加强大,特别是在处理大量数据时。了解DataFrame不仅能帮你更高效地处理数据,还能让你更容易进行数据清洗、可视…...
【word】从正文开始设置页码
在写报告的时候,会要求有封面和目录,各占一页。正文从第3页开始,页码从正文开始设置 word是新建的 分出三节(封面、目录、正文) 布局--->分割符--->分节符--->下一页 这样就能将word分为3节,分…...
计算机网络 快速了解网络层次、常用协议、常见物理设备。 掌握程序员必备网络基础知识!!!
文章目录 0 引言1 基础知识的定义1.1 计算机网络层次1.2 网络供应商1.3 猫、路由器、交换机1.4 IP协议1.5 TCP、UDP协议1.6 HTTP、HTTPS、FTP协议1.7 Web、Web浏览器、Web服务器 2 总结 0 引言 在学习的过程中总是会对IP、TCP、UDP、HTTP、HTTPS、FTP这些常见的协议不熟悉&…...
CUDA 安装
查看自己电脑的cuda版本:见文章 查看CUDA版本 我的是: 他的意思就是说:俺的显卡支持的cuda版本是12.0的(向下兼容) 然后我的项目tensorflow-gpu版本是1.13.2版本的,对应的cuda为10: ÿ…...
QQ空间历史说说备份终极指南:一键永久保存你的青春记忆
QQ空间历史说说备份终极指南:一键永久保存你的青春记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾试图找回多年前的QQ空间说说,却发现那些承载青春…...
PyTorch 2.8应用场景:高校AI课程实验平台——学生免配环境专注算法实现
PyTorch 2.8应用场景:高校AI课程实验平台——学生免配环境专注算法实现 1. 高校AI教学面临的挑战 在高校人工智能课程教学中,环境配置一直是困扰师生的难题。传统教学模式下,学生需要花费大量时间在: 安装不同版本的CUDA驱动解…...
3个革命性功能:让2D照片秒变3D场景的相机匹配神器
3个革命性功能:让2D照片秒变3D场景的相机匹配神器 【免费下载链接】fSpy A cross platform app for quick and easy still image camera matching 项目地址: https://gitcode.com/gh_mirrors/fs/fSpy 想象一下,你手头有一张建筑照片,想…...
Windows蓝屏dmp文件分析实战:从!analyze -v到svchost.exe内存占用排查
Windows蓝屏dmp文件分析实战:从!analyze -v到svchost.exe内存占用排查 当Windows系统突然蓝屏时,桌面上那个冰冷的错误界面往往让人手足无措。作为一名长期与Windows系统打交道的技术支持工程师,我深知蓝屏背后隐藏的系统问题可能千差万别。而…...
WarcraftHelper 2024终极指南:让经典魔兽争霸III在现代电脑完美运行
WarcraftHelper 2024终极指南:让经典魔兽争霸III在现代电脑完美运行 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典魔兽争霸II…...
计算机工程与应用投稿求助
计算机工程与应用二审后主编给了请专家复审意见,请问下朋友们这样复审的话还是二审的专家吗?这样的话中的希望还大吗?谢谢朋友们...
Qwen3-14B部署指南:模型权重量化(AWQ/GGUF)降低显存占用
Qwen3-14B部署指南:模型权重量化(AWQ/GGUF)降低显存占用 1. 镜像概述与核心优势 Qwen3-14B私有部署镜像是专为RTX 4090D 24GB显存显卡优化的完整解决方案,开箱即用无需复杂配置。这个镜像最显著的特点是内置了AWQ和GGUF两种量化…...
napari六种图层类型完全解析:从Image到Surface的完整教程
napari六种图层类型完全解析:从Image到Surface的完整教程 【免费下载链接】napari napari: a fast, interactive, multi-dimensional image viewer for python 项目地址: https://gitcode.com/gh_mirrors/na/napari napari是一款快速、交互式的多维图像查看器…...
DISCO/TSK机型切割道与切痕标注及对称中心定位系统
DISCO/TSK机型切割道与切痕标注及对称中心定位系统 摘要 在半导体晶圆划片工艺中,切割道(Scribe Line)与切痕(Kerf)的精确检测与定位对于保证芯片分割质量、减少崩边及提高良率至关重要。本文针对DISCO、TSK等主流划片机机型,提出了一套基于图像处理的切割道与切痕自动…...
DAMOYOLO-S在医疗影像分析中的初探:辅助定位X光片中的异物
DAMOYOLO-S在医疗影像分析中的初探:辅助定位X光片中的异物 最近和几位做医学影像的朋友聊天,他们提到一个挺头疼的问题:在大量的X光片里,尤其是急诊或者术后复查的片子,要快速、准确地找出那些不该出现的“小东西”&a…...
