【每日一练及解题思路】四种方式判断字符串是否含数字
一、题目:给定一个字符串,找出其中不含重复字符的最长子串的长度
二、举例:
- 比如"abcdefgh",不含数字;
- 比如"1",含数字;
- 比如"a1s",含数字
三、思路:
多读题!!! 判断字符串是否含数字
多读题!!! 判断字符串是否含数字
多读题!!! 判断字符串是否含数字
解题思路1:遍历字符串的每个字符,判断每个字符是否是数字。
遍历方式1:将字符串转为字符数组
遍历方式2:for循环按索引下标遍历字符串的每个字符
判断方式1:判断字符对应的整数是否在0到9之间
判断方式2:使用Character.isDigit(char c)方法
解题思路2:使用正则表达式对整个字符串进行模式匹配
四、总结:
可以从每个字符入手去判断,也可也用正则的方式从整个字符串入手判断。
五、代码
import java.util.Scanner;
/* @author Dylaniou
* @date 20240831
* @desc 本地测试类
=============================
*/
public class TestLocal {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = "" ;
while(!str.equals("end")){
str = scanner.nextLine();
System.out.println(containsNumber1(str)+":"+containsNumber2(str)+":"+containsNumber3(str)+":"+containsNumber4(str));
}
}
public static boolean containsNumber1(String str){
for(int i = 0; i < str.length(); i++){
if(str.charAt(i) > '0' && str.charAt(i) < '9'){
return true;
}
}
return false;
}
public static boolean containsNumber2(String str){
for(char c:str.toCharArray()){
if(c > '0' && c < '9'){
return true;
}
}
return false;
}
public static boolean containsNumber3(String str){
return str.matches(".*[0-9].*");
}
public static boolean containsNumber4(String str){
for(int i = 0; i < str.length(); i++){
if(Character.isDigit(str.charAt(i))){
return true;
}
}
return false;
}
}