Java 程序查找字符串中的第一个非重复字符

10 Sept 2024 | 4 分钟阅读

最初,有很多方法和逻辑来查找字符串中的第一个非重复字符,只需要实现。要实现,我们需要理解逻辑,并且需要完全掌握编程语言。在用 Java 实现逻辑之前,我们首先需要定义 Java 编程的定义。

字符串中第一个非重复字符的示例

考虑一个关于这个问题的例子,以单词 Javatpoint 为例;从字符串 "Javatpoint" 的开头开始。逐个检查每个字符,并跟踪遇到的每个字符的计数。对于所有字符,计数为一,除了字符 'a' 和 't',它们的计数为二。现在,再次从头开始扫描字符串,找到第一个计数为 1 的字符。在这种情况下,它是 'j'。

因此,字符串 "Javatpoint" 中第一个非重复字符是 'J'。

算法

上述示例的算法如下

步骤 1: 开始

步骤 2: 将 firstNonRepeatingChar 初始化为 null 字符 ('\0'),foundNonRepeating 初始化为 false。

步骤 3: 使用循环迭代输入字符串中的每个字符。

步骤 4: 对于每个字符,通过再次迭代输入字符串并与其他字符进行比较来检查它是否重复。

步骤 5: 如果当前字符不重复,则将其赋给 firstNonRepeatingChar,将 foundNonRepeating 设置为 true,然后跳出循环。

步骤 6: 循环结束后,检查 foundNonRepeating 的值。

步骤 7: 如果 foundNonRepeating 为 true,则打印“第一个非重复字符是:”,后跟 firstNonRepeatingChar。

步骤 8: 如果 foundNonRepeating 为 false,则打印“输入字符串中没有非重复字符。”

步骤 9: 结束。

使用 indexOf() 和 lastIndexOf() 的 Java 程序

NonRepeatingChar.Java

输出

Input a String: JavaTpoint
The first character which is not repeating is: J

时间复杂度

提供的程序的时间复杂度为 O(n^2),其中 n 是输入字符串的长度。

使用 ASCII 值的 Java 程序

NonRepeatingChar.Java

输出

Enter a String: JavaTpoint
The first character which is not repeating is: J

时间复杂度

提供的程序的时间复杂度为 O(n),其中 n 是输入字符串的长度。

使用暴力法的 Java 程序

NonRepeatingChar.Java

输出

Enter a String: JavaTpoint
The first character which is not repeating is: J

时间复杂度

提供的程序的时间复杂度为 O(n^2),其中 n 是输入字符串的长度。

使用集合和列表的 Java 程序

NonRepeatingChar.Java

输出

Enter a String: JavaTpoint
The first character which is not repeating is: J

时间复杂度

提供的程序的时间复杂度为 O(n^2),其中 n 是输入字符串的长度。

结论

因此,以上是针对给定查询的不同方法,即编写一个 Java 程序来查找字符串中的第一个非重复字符。因此,以上四个程序将成功执行而不会出错。因此,可以通过跟踪程序并给出自己的输出来理解逻辑。