Java:字符charAt()与indexOf()
charAt()
1、函数含义
函数名 | 含义 |
---|---|
charAt(int index) | charAt方法,参数index是指定的索引,返回的是该索引处的char值 |
2、代码解析
public static void main(String[] args) {
String s = "abcdefabcdef";
System.out.println(s.charAt(5));
//返回‘f’
}
indexOf()
1、函数含义
函数名 | 含义 |
---|---|
indexOf(char ch) | 返回指定字符在此字符串第一次出现的索引,找不到则返回-1 |
indexOf(char ch, int fromIndex) | 返回字符ch在字符串中由fromIndex位置开始搜索的第一次出现处索引,找不到则返回-1 |
indexOf(String str) | 返回指定字符串str在带搜索字符串中第一次出现处索引,找不到则返回-1 |
indexOf(String str, int fromIndex) | 返回字符串str在字符串中由fromIndex位置开始搜索的第一次出现处索引,找不到则返回-1 |
2、代码解析
(1)indexOf(char ch)
public static void main(String[] args) {
String s = "abcdefabcdef";
System.out.println(s.indexOf('g'));//返回-1
System.out.println(s.indexOf('a'));//返回0
}
(2)indexOf(char ch, int fromIndex)
public static void main(String[] args) {
String s = "abcdefabcdef";
System.out.println(s.indexOf('a',1));//返回6
}
(3)indexOf(String str)
public static void main(String[] args) {
String s = "abcdefabcdef";
System.out.println(s.indexOf("abc"));//返回0
}
(4)indexOf(String str, int fromIndex)
public static void main(String[] args) {
String s = "abcdefabcdef";
System.out.println(s.indexOf("abc",1));//返回6
}
举个应用
题目:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
示例:
s = “abaccdeff”
返回 “b”
s = “”
返回 " "
限制:
0 <= s 的长度 <= 50000
结题代码(仅供参考,并非最优解法):
class Solution {
public char firstUniqChar(String s) {
for(int i = 0; i < s.length(); i++){
char ch = s.charAt(i);
//若第i个字符在i之后找不到相同的字符,即找到了满足题意的字符
if(s.indexOf(ch)==i && s.indexOf(ch,i+1)==-1)
return ch;
}
return ' ';
}
}