Java 使用For循环标识字符串中的数字
我试图确定使用for循环提供的输入中是否有数字。我已经尝试了很长一段时间,甚至在谷歌的第二页上搜索。我决定寻求一些帮助。以下是我迄今为止所尝试的:Java 使用For循环标识字符串中的数字,java,loops,for-loop,numbers,letter,Java,Loops,For Loop,Numbers,Letter,我试图确定使用for循环提供的输入中是否有数字。我已经尝试了很长一段时间,甚至在谷歌的第二页上搜索。我决定寻求一些帮助。以下是我迄今为止所尝试的: for (c = 0 ; c < 6 ; c = c++) { c = input.charAt (0); if (Character.isDigit (c)) { System.out.println ("Input must only contain letters."); retu
for (c = 0 ; c < 6 ; c = c++)
{
c = input.charAt (0);
if (Character.isDigit (c))
{
System.out.println ("Input must only contain letters.");
return;
}
}
(c=0;c<6;c=c++)的
{
c=输入字符(0);
if(Character.isDigit(c))
{
System.out.println(“输入必须仅包含字母。”);
返回;
}
}
基本上,我试图扫描所有的字母,并分别测试它们是字母还是数字,这就是我遇到的问题,因为只扫描第一个字母。我也尝试过在循环中输入“c++”。我如何扫描每封信
编辑:哎呀,那是个错误。我把它改成c= c++ 1,但它没有用,我把它改回C++,但最终变成了c= C++。 你不能同时使用<代码> c>代码>作为索引和值。试试这个:
for (int i = 0; i < 6; i++) {
c = input.charAt(i);
// ...
}
char chr = input.charAt(c);
if (Character.isDigit (chr))
{
System.out.println ("Input must only contain letters.");
return;
}
for(int i=0;i<6;i++){
c=输入字符(i);
// ...
}
不能同时使用c
作为索引和值。试试这个:
for (int i = 0; i < 6; i++) {
c = input.charAt(i);
// ...
}
char chr = input.charAt(c);
if (Character.isDigit (chr))
{
System.out.println ("Input must only contain letters.");
return;
}
for(int i=0;i<6;i++){
c=输入字符(i);
// ...
}
此行:c=input.charAt(0)代码>有两个问题
首先,您可能不希望每次循环执行时都重置迭代值c
。因此,可以将其更改为不同的变量,如下所示:
char chr = input.charAt(....
其次,您只获取第一个char
,因为您将0发送到.charAt()
函数。试试这个:
for (int i = 0; i < 6; i++) {
c = input.charAt(i);
// ...
}
char chr = input.charAt(c);
if (Character.isDigit (chr))
{
System.out.println ("Input must only contain letters.");
return;
}
此行:c=input.charAt(0)代码>有两个问题
首先,您可能不希望每次循环执行时都重置迭代值c
。因此,可以将其更改为不同的变量,如下所示:
char chr = input.charAt(....
其次,您只获取第一个char
,因为您将0发送到.charAt()
函数。试试这个:
for (int i = 0; i < 6; i++) {
c = input.charAt(i);
// ...
}
char chr = input.charAt(c);
if (Character.isDigit (chr))
{
System.out.println ("Input must only contain letters.");
return;
}
使用正则表达式和Java的模式类:
boolean b = Pattern.matches("[0-9]+", input);
如果您不熟悉正则表达式,[0-9]+将在字符串中找到0到9之间任何数字的一个或多个匹配项(“+”运算符)。然后,您需要做的就是检查变量b是true(表示搜索找到了一个数字)还是false(字符串中没有数字)
此外,我注意到您正在以以下方式递增循环变量c:
c = c++
这个操作实际上对c的值没有影响。赋值语句中变量后的++运算符表示“将变量的当前值指定给另一个变量后,将该变量的值递增一。接下来发生的事情是,将c的值赋给它自己,将c增加1。这个递增的值永远不会保存回c,因此您的循环可能会无限继续。增加循环变量的正确方法如下所示:
for (c = 0; c < 6; c++) {
// ...
}
(c=0;c<6;c++)的{
// ...
}
使用正则表达式和Java的模式类:
boolean b = Pattern.matches("[0-9]+", input);
如果您不熟悉正则表达式,[0-9]+将在字符串中找到0到9之间任何数字的一个或多个匹配项(“+”运算符)。然后,您需要做的就是检查变量b是true(表示搜索找到了一个数字)还是false(字符串中没有数字)
此外,我注意到您正在以以下方式递增循环变量c:
c = c++
这个操作实际上对c的值没有影响。赋值语句中变量后的++运算符表示“将变量的当前值指定给另一个变量后,将该变量的值递增一。接下来发生的事情是,将c的值赋给它自己,将c增加1。这个递增的值永远不会保存回c,因此您的循环可能会无限继续。增加循环变量的正确方法如下所示:
for (c = 0; c < 6; c++) {
// ...
}
(c=0;c<6;c++)的{
// ...
}
我已经创建了这个布尔函数,检查它是否有用
public static boolean containtsDigits(String input) {
boolean isDigit = false;
if(input != null && !input.isEmpty()){
char[] letterCharArray = input.toCharArray();
for(int i = 0 ; i < letterCharArray.length ; i++){
if(Character.isDigit(letterCharArray[i])){
isDigit = true;
break;
}
}
}
return isDigit;
}
public静态布尔containtsDigits(字符串输入){
布尔值isDigit=false;
if(input!=null&!input.isEmpty()){
char[]letterCharArray=input.toCharArray();
对于(int i=0;i
我已经创建了这个布尔函数,检查它是否有用
public static boolean containtsDigits(String input) {
boolean isDigit = false;
if(input != null && !input.isEmpty()){
char[] letterCharArray = input.toCharArray();
for(int i = 0 ; i < letterCharArray.length ; i++){
if(Character.isDigit(letterCharArray[i])){
isDigit = true;
break;
}
}
}
return isDigit;
}
public静态布尔containtsDigits(字符串输入){
布尔值isDigit=false;
if(input!=null&!input.isEmpty()){
char[]letterCharArray=input.toCharArray();
对于(int i=0;i
试试这个:
public void check(String word){
int n=word.length(); // To Find length of the string.
for(int c=0;c<n;c++ ){
char ch=word.charAt(c); // for extracting every single element of word
if(Character.isDigit(ch)) // To check if its Digit
{
System.out.println ("Input must only contain letters.");
break;
}
}
System.out.println ("All Good");
}
公共无效检查(字符串字){
int n=word.length();//查找字符串的长度。
对于(int c=0;c请尝试以下方法:
public void check(String word){
int n=word.length(); // To Find length of the string.
for(int c=0;c<n;c++ ){
char ch=word.charAt(c); // for extracting every single element of word
if(Character.isDigit(ch)) // To check if its Digit
{
System.out.println ("Input must only contain letters.");
break;
}
}
System.out.println ("All Good");
}
公共无效检查(字符串字){
int n=word.length();//查找字符串的长度。
对于(int c=0;cYou正在寻找正则表达式或循环遍历每个字符,并使用character.isDigit()函数检查它是否为数字。请看下面的问题:我将如何使用“str.matches(.*\\d+.*)”?我对编码有点陌生,我们还没有完全了解这一点。String myString=“Insert Your String Here 123”;System.out.println(myString.matches(“.*\\d+.”);如果字符串与该正则表达式匹配,它将返回true。正则表达式将检查字符串中是否存在任何数字。您将查找正则表达式或循环每个字符,并检查它是否为数字