java如何实现获取字符串中第一个出现不重复的字符
Dec 04, 2019 pm 04:26 PM比如:输入name输出n,输入teeter输出r,输入namename输出null
具体实现代码如下:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.next(); for(int i =0 ; i < str.length() ; i++) { if(str.lastIndexOf(str.char(i)) == i && str.indexOf(str.char(i)) == i) { System.out.println(str.char(i)); break; } } } }
在线视频教程推荐:java视频
在这个实现代码中我们使用了String类的三个方法成员:
String.length()
:获取字符串的长度
String.charAt(int index)
:获取索引index的字符
String.lastIndexOf(char c)
:获取字符c最后一次出现在字符串中的索引
String.indexOf(char c)
:获取字符c第一次出现在字符串中的索引
其实我们也可以不使用字符串的这些方法就可以实现了,下面是个人使用for循环来实现的代码:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.next(); char[] cb = new char[str.length()]; //将字符串中的字符一次存入cb[] for(int i =0 ;i <str.length() ; i++) { cb[i] = str.charAt(i); } for(int i = 0 ; i < str.length() ; i++) { for(int j = 0 ; j < str.length() ; j++) { if(cb[i] == cb[j] && cb[i] != '0') { char c = cb[i]; for(int z = 0 ; z < str.length() ; z++) { if(cb[z] == c) cb[z] = '0'; } } } } for(int i = 0 ; i <str.length() ; i++) { if(cb[i] != '0') { System.out.println(cb[i]); break; } } } }
这种方法可以实现,不过这种方法的时间复杂度特别的大,系统开销也特别大,因此我们最好不要使用循环嵌套,除非迫不得已,不然对系统开销是很大的。
相关文章教程推荐:java快速入门
Atas ialah kandungan terperinci java如何实现获取字符串中第一个出现不重复的字符. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Cuti atau kembali dari Java 8 Stream Foreach?
