有没有一种方法可以找到两个5个字符的字符串之间的ASCII距离

公共静态无效

我正在尝试找到一种方法来计算和打印来自用户输入的字符串之间的Ascii距离

 Scanner scan = new Scanner(System.in);
    System.out.print("Please enter a string of 5 uppercase characters:");
    String userString = scan.nextLine();
    

和一个随机生成的字符串

 int leftLimit = 65; // Upper-case 'A'
    int rightLimit = 90; // Upper-case 'Z'
    int stringLength = 5;
    Random random = new Random();
    String randString = random.ints(leftLimit, rightLimit + 1)
        .filter(i -> (i <= 57 || i >= 65) && (i <= 90 || i >= 97))
        .limit(stringLength)
        .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
        .toString();

有没有一种方法可以计算距离而不必将两个字符串中的每个字符分开,进行比较并将它们加在一起?

兹威瑟洛特

顾名思义,流就是流。除非您可以严格地根据一个输入定义一个操作,否则它们将无法很好地工作:流中的一个元素,而不知道其索引或引用整个集合。

在这里,这是一个问题。毕竟,要对输入中的“ H”进行运算,您需要使用随机代码中的匹配字符。

我不确定为什么您会发现“将每个字符分开,进行比较,然后将它们重新加在一起”对您来说真是令人讨厌。从问题描述到计算机运行说明,这不是很清晰的映射吗?

替代方法更加复杂:您可以尝试创建一个既包含字母又包含索引的混合对象,在其上进行流式处理,并使用索引在第二个字符串中查找字符。另外,您可以尝试创建一个包含两个字符的混合对象(因此,对于输入ABCDE和HELLO,一个包含A和H的对象),但是您要编写更多的代码来进行设置,然后是简单的,没有流的方式。

因此,让我们从简单的方法开始:

int difference = 0;
for (int i = 0; i < stringLength; i++) {
    char a = inString.charAt(i);
    char b = randomString.charAt(i);
    difference += difference(a, b);
}

您必须自己编写差分方法-但这将是非常非常简单的单行代码。

尝试获取两个某种形式的集合,并从中创建一个单一的流,其中流中的每个元素都与每个集合中的元素匹配(因此,的流["HA", "EB", "LC", "LD", "OE"])通常称为“压缩”(与流行的文件压缩算法无关)和产品),而Java并不真正支持它(还可以吗?)。有一些第三方库可以做到这一点,但是鉴于以上内容非常简单,因此我认为压缩不是您想要的。

如果绝对需要,我想我会看起来像:

// a stream of 0,1,2,3,4
IntStream.range(0, stringLength)
// map 0 to "HA", 1 to "EB", etcetera
.mapToObj(idx -> "" + inString.charAt(idx) + randomString.charAt(idx))
// map "HA" to the difference score
.mapToInt(x -> difference(x))
// and sum it.
.sum();

public int difference(String a) {
   // exercise for the reader
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有一种有效的方法可以在两个字符串之间分割一个字符串?

有没有一种方法可以找到两个C#字符串中最长的字符串的长度?

有没有一种方法可以找到一个字符串中某个标签的所有索引(相对于已删除标签的同一字符串)?

有没有一种方法可以在Python中多次格式化一个字符串?

在greenplum的外部表创建中,有没有一种方法可以定义一个字符串替换为另一个字符串?

有没有一种方法可以使用Notepad ++在两个视图中突出显示选定的字符串?

有没有一种方法可以将两个变量与以字符串形式存储的比较器进行比较

有没有一种方法可以完全匹配R中另一列中的一个字符串与另一列中的字符串?

有没有一种方法可以拆分数组中的每个字符串,并每次检索第5位,从而求和?

MATLAB-有没有一种方法可以使用多个字符串进行字符串比较

有没有一种方法可以(永远)检查某个字符串的长度是否可以被某个整数整除?

有没有一种方法可以计算特定列中第一次看到多少个字符串?

有没有一种简单的方法可以将多个字符串与另一个字符串进行比较?

有没有一种快速的方法来获取字符串中的最后两个字符?

有没有一种方法可以从这两个函数中的任何一个创建泛型函数?(将通用数组转换为字符串)

有没有一种方法可以消除口音并将整个字符串转换为常规字母?

有没有一种方法可以将多个字符串添加到Text对象?(Zelle图形)

有没有一种方法可以通过单个字符串编写xml注释<summary>

有没有一种方法可以访问组成VBA中字符串的各个字节?

有没有一种方法可以从python中的字符串中找到关键字

有没有一种方法可以找到最特定的字符串模式?

有没有一种简单的方法可以在两个方向将类解析为字符串

有没有一种方法可以在两个pouchdb实例之间进行同步?

有没有一种方法可以在两个viewController之间共享UI元素?

有没有一种方法可以在列表中字符串的空格之间插入“-”?

有没有一种干净的方法来检查一个字符串是否包含另一个字符串的字符

有没有一种有效的方法可以用另一个字符串覆盖索引处的字符串?

有没有一种方法可以从字符串创建结构实例?

有没有一种方法可以停止Ractive中每个字符的更新?