Java 在给定的字符串集中分离字符和数字并只添加数字

Java 在给定的字符串集中分离字符和数字并只添加数字,java,Java,这是我的代码,我想从给定的字符串值中只计算整数 例如:abc123as34输出:13 这里忽略字符串只计算数字,一种方法是循环字符串中的每个字符,检查它是否是数字。如果是,将其添加到某种类型的total变量中。例如: String str = "abc123as34"; int total = 0; for (char c : str.toCharArray()) { if (Character.isDigit(c)) { total += Character.getN

这是我的代码,我想从给定的字符串值中只计算整数

例如:abc123as34输出:13
这里忽略字符串只计算数字,

一种方法是循环字符串中的每个字符,检查它是否是数字。如果是,将其添加到某种类型的
total
变量中。例如:

String str = "abc123as34";

int total = 0;
for (char c : str.toCharArray()) {
    if (Character.isDigit(c)) {
        total += Character.getNumericValue(c);
    }
}   
System.out.println(total);

一种方法是循环字符串中的每个字符,检查它是否是数字。如果是,将其添加到某种类型的
total
变量中。例如:

String str = "abc123as34";

int total = 0;
for (char c : str.toCharArray()) {
    if (Character.isDigit(c)) {
        total += Character.getNumericValue(c);
    }
}   
System.out.println(total);

您可以逐个循环字符串中的字符,并将每个字符相加为一个数字:

public static int sumInts(String str) {
  int sum = 0;
  for (char c : str.toCharArray()) {
    if (Character.isDigit(c)) {
      sum += Character.getNumericValue(c);
    }
  }
  return sum;
}

您可以逐个循环字符串中的字符,并将每个字符相加为一个数字:

public static int sumInts(String str) {
  int sum = 0;
  for (char c : str.toCharArray()) {
    if (Character.isDigit(c)) {
      sum += Character.getNumericValue(c);
    }
  }
  return sum;
}
试试这个:

 class Calc

{
   public static void main (String[] args) 
{
 String s="123ab3";
 char[] d=s.toCharArray();
 int total=0;
 for(int i=0;i<d.length;i++)
 {
   try
  {
     total=total+Integer.parseInt(""+d[i]);
     System.out.println(""+total);
  }
  catch(Exception e)
  {
    System.out.print("not no");
  }
}
 System.out.print("total="+total);
   }
 }
试试这个:

 class Calc

{
   public static void main (String[] args) 
{
 String s="123ab3";
 char[] d=s.toCharArray();
 int total=0;
 for(int i=0;i<d.length;i++)
 {
   try
  {
     total=total+Integer.parseInt(""+d[i]);
     System.out.println(""+total);
  }
  catch(Exception e)
  {
    System.out.print("not no");
  }
}
 System.out.print("total="+total);
   }
 }

对不起,我看不到你的电话code@Keppil我猜他是在对数字求和。@Keppil我想他的意思是1+2+3++3+4=13首先试着从字符串中提取数字。然后你可以很容易地把它们相加。@ScaryWombat*/int count=0;public void abc(String a){int i1=0;String regex=“[a-zA-Z]”字符串s1[]=a.split(“”);用于(int i=0;我恐怕看不到您的code@Keppil我猜他是在对数字求和。@Keppil我想他的意思是1+2+3++3+4=13首先试着从字符串中提取数字。然后你可以很容易地对它们求和。@ScaryWombat*/int count=0;public void abc(String a){int i1=0;String regex=“[a-zA-Z]”字符串s1[]=a.split(“”);例如(int i=0;ir你确定这会给出准确的结果,我不这么认为,因为
(int)c
这不会将字符类型转换为int。
(int)的值是多少“3”
?这不会产生期望的结果,因为如果将字符“0”强制转换为int,它将是48。它应该是
sum+=c-“0”;
Doh!当然你是对的。我已经编辑了我的答案(虽然它基本上等同于@Th3Cuber)。你确定这会给出准确的结果,我不这么认为,因为
(int)c
这不会将字符强制转换为int。
(int)“3”的值是多少?
?这不会产生期望的结果,因为如果将字符“0”强制转换为int,它将是48。它应该是
sum+=c-“0”;
Doh!当然你是对的。我已经编辑了我的答案(尽管它基本上等同于@Th3Cuber)。