首页手机计算字符串长度的函数C语言 计算字符串长度java

计算字符串长度的函数C语言 计算字符串长度java

圆圆2025-08-30 18:00:57次浏览条评论

计算字符串的汉明距离:java 教程

本文档详细介绍了如何在Java中计算两个字符串之间的汉明距离。汉明距离是两个等长字符串之间,对应位置上不同字符的个数。本文将提供一个hammingDistance方法的实现,该方法接收两个字符串作为输入,并返回它们的汉明距离。如果字符串长度不一致,则返回-1。另外,练习如何在主方法中使用该方法,并结合磁盘操作,找到目标字符串汉明距离最小的字符串。汉明距离的计算

汉明距离是信息论中的一个重要概念,用于四个等长字符串之间的差异。它表示将一个字符串转换成另一个字符串所需要替换的字符个数。

hammingDistance方法的实现

以下是一个计算汉明距离的Java方法:public class HammingDistance { public static int hammingDistance(String str1, String str2) { //检查字符串长度是否符合 if (str1.length() != str2.length()) { return -1; // 如果长度不一致,返回 -1 } int distance = 0; // 删除字符串,比较位置的字符对应 for (int i = 0; i lt; str1.length(); i ) { if (str1.charAt(i) != str2.charAt(i)) { distance ; // 字符不同,距离加 1 } } return distance; // 返回汉明距离 } public static void main(String[] args) { // 示例最常用 String str1 = quot;dogquot;; String str2 = quot;digquot;; int distance = hammingDistance(str1, str2); System.out.println(quot;str1 quot;\quot;和 str2 quot;\quot;之间的汉明距离为: quot; distance); // 输出:1 String str3 = quot;catquot;; String str4 = quot;carquot;; distance = hammingDistance(str3, str4); System.out.println(quot;str3 quot;\quot;和 str4 quot;\quot;之间的汉明距离为: quot; distance); // 输出:1 String str5 = quot;helloquot;; String str6 = quot;worldquot;; distance = hammingDistance(str5, str6); System.out.println(quot;str5 quot;\quot;和 str6 quot;\quot;之间的汉明距离为: quo

t; distance); // 输出:4 String str7 = quot;shortquot;; String str8 = quot;longerquot;; distance = hammingDistance(str7, str8); System.out.println(quot;\quot;quot; str7 quot;\quot;与 \quot;quot;str8 quot;\quot;之间的汉明距离为: quot;distance); // 输出:-1 }}登录后复制

代码解释:

立即学习“Java免费学习笔记(深入)”;长度检查:首先,方法检查输入的两个字符串str1和str2的长度是否符合。如果长度不符合,则直接返回-1,则因为汉明距离只适用于等长字符串。距离计算:如果字符串长度连续,则初始化一个标志距离为0。然后,使用一个循环字符串的每个字符字符。该比较:在循环中,比较str1和 str2 上的字符位置相同。如果字符不同,则将距离 加1。返回值:循环结束后,距离变量存储了汉明距离,该方法返回距离。

在 main 方法中使用 hammingDistance

以下是如何在 main 方法中使用 hammingDistance 方法的示例:import java.util.Scanner;public class Main { public static int hammingDistance(String str1, String str2) { if (str1.length() != str2.length()) { return -1; } int distance = 0; for (int i = 0; i lt; str1.length(); i ) { if (str1.charAt(i) != str2.charAt(i)) { distance ; } } return distance; } public static void main(String[] args) { Scanner Scanner = new Scanner(System.in); //创建字符串仓库和远程仓库 String[] stringList = new String[5]; int[] distances = new int[5]; // 读取 5 个字符串 for (int i = 0; i lt; 5; i ) { System.out.print((i 1) quot;.输入字符串: quot;); stringList[i] = Scanner.nextLine(); } // 读取目标字符串 System.out.print(quot;输入 target: quot;); String target = Scanner.nextLine(); // 计算汉明距离 for (int i = 0; i lt; 5; i ) { distances[i] = hammingDistance(stringList[i], target); } // 查找最小汉明距离 int minDistance = Integer.MAX_VALUE; int minIndex = -1; for (int i = 0; i lt; 5; i ) { if (distances[i] != -1 amp;amp; distances[i] lt; minDistance) { minDistance = distances[i]; minIndex = i; } } // 输出结果

System.out.print(quot;数组距离内容: quot;); for (int i = 0; i lt; 5; i ) { System.out.print(i quot; quot; distances[i] quot; quot;); } System.out.println(); if (minIndex != -1) { System.out.println(quot;最小汉明距离的字符串: quot; stringList[minIndex]); } else { System.out.println(quot;没有找到汉明距离quot;); } Scanner.close(); }}登录后复制

代码解释:

立即学习“Java免费学习笔记(深入)”;输入读取:使用Scanner类从控制台读取5个字符串和一个目标字符串。距离计算:循环读取stringList装载,调用hammingDistance方法计算每个字符串与目标字符串的汉明距离,并将结果存储在距离中简单查找: 循环遍历距离 吞吐量,找到最小的汉明距离(不包括-1)。输出结果:输出距离 吞吐量的内容,并输出与目标字符串汉明距离最小的字符串。如果所有距离均为-1,则输出“无汉明距离”注意事项汉明距离只能用于等长字符串。如果字符串长度不一致,需要进行处理,例如截断、填充或者返回错误信息。在计算汉明距离时,需要保证字符编码一致。如果字符编码不一致,可能会导致计算结果错误。在实际应用中,可以需要对汉明距离进行根据一化,例如除以字符串长度,以便比较不同长度字符串之间的差异。总结

本文介绍了如何用Java计算字符串的汉明距离,并提供了一个完整的示例代码。通过本文的学习,您应该能够理解汉明距离的概念,并能够使用Java实现汉明距离的计算。另外,您还了解了如何在实际应用文章中使用汉明距离,例如查找与目标字符串最相似的字符串。

以上就是计算字符串的汉明距离:Java教程的详细,内容更多请关注乐哥常识网其他相关!

计算字符串的汉明距离
brave浏览器官网国内可以用吗 brave浏览器官网手机版
相关内容
发表评论

游客 回复需填写必要信息