Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用For循环标识字符串中的数字_Java_Loops_For Loop_Numbers_Letter - Fatal编程技术网

Java 使用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循环提供的输入中是否有数字。我已经尝试了很长一段时间,甚至在谷歌的第二页上搜索。我决定寻求一些帮助。以下是我迄今为止所尝试的:

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。正则表达式将检查字符串中是否存在任何数字。您将查找正则表达式或循环每个字符,并检查它是否为数字