Java 识别输入字符串中的数字和字母

Java 识别输入字符串中的数字和字母,java,string,input,Java,String,Input,到目前为止,我在获取长度方面没有问题,但是识别字母中的数字很难,这里有人能帮我吗谢谢你的帮助这里是新代码我的新问题是在计算字符串中的元素时不会计算输入的数字,如地址示例99 San pedro st Philippine。。。。。它将只计算菲律宾圣佩德罗街 import java.util.Scanner; public class Exercise3 { public static void main(String [] args) { Scanner

到目前为止,我在获取长度方面没有问题,但是识别字母中的数字很难,这里有人能帮我吗谢谢你的帮助这里是新代码我的新问题是在计算字符串中的元素时不会计算输入的数字,如地址示例99 San pedro st Philippine。。。。。它将只计算菲律宾圣佩德罗街

import java.util.Scanner;

public class Exercise3
{ 
    public static void main(String [] args)
    {  
        Scanner scan= new Scanner(System.in); 
        System.out.println("Enter String:"); 
        String s=scan.nextLine();
        s = s.replace(" ","");
        System.out.println("Total of Elements is: " + s.length());

        int nDigits =0,nLetters =0,sum =0;
        for(int i =0;i<s.length();i++)
        {
        Character ch = s.charAt(i);
        if(Character.isDigit(ch)){
        nDigits++;
        sum += Integer.parseInt(ch.toString());
    }
        else if (Character.isLetter(ch)){
        nLetters++;
    }
   }
        System.out.println("The sum of numbers in the string: " + sum);
        }
      }
   }
import java.util.Scanner;
公开课练习3
{ 
公共静态void main(字符串[]args)
{  
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入字符串:”);
字符串s=scan.nextLine();
s=s。替换(“,”);
System.out.println(“元素总数为:“+s.length()”);
int nDigits=0,nLetters=0,sum=0;

对于(int i=0;i看起来您的问题在于行
sum+=Integer.parseInt(s.toString());
。您正在获取整个InputStream的字符串值,这几乎肯定是您不想要的。我假设您打算执行
sum+=Integer.parseInt(s.charAt(i).toString());
,它将只给出每个数字的值。请记住字符串
hello43world
,它将返回7(4+3),而不是43

编辑:要执行实际需要的操作-即字符串中的字母数,请尝试

public static int getSum(String s)
{
    int sum = 0;
    for(int i = 0; i < s.length(); i++)
    {
        if(Character.isLetter(s.charAt(i)))
        {
            sum ++;
        }
    }
    return sum;
}
publicstaticintgetsum(字符串s)
{
整数和=0;
对于(int i=0;i

这将只计算字符串中的字符-比不计算非字符的所有字符要容易得多。

如果字符是数字,将整个字符串作为一个数字添加到滚动和中…想想看,这就是你要做的事情。谢谢Benthanks的提示,了解Kevin,但在这个特定的程序中如何做计算输入字符串的长度?例如,像hello43world一样,长度仅为10,不计算数字您可以通过
s.length()获得字符串的长度
。这计算的是字符数,而不仅仅是字母数。呃……我想我对您想要
getSum
返回的确切内容感到困惑。基于输入字符串,您希望它返回什么?忘记我已经得到的总和吧。我的新问题是,当我输入像菲律宾圣佩德罗街99号这样的地址时,输出将是元素的总数是:21(不包括空格)和的总数是:18这样当得到输入字符串的字母总数时,它不会计算99或99个数字,这是我想要得到的,非常感谢你的帮助^_^