返回参数字符串中所有整数之和的java程序

返回参数字符串中所有整数之和的java程序,java,Java,我想写一个java程序来返回参数字符串中所有整数的总和。 例如,以一个字符串为例:“12 hi when 8 and 9” 现在的答案是12+8+9=29。 但我真的不知道该怎么开始,谁能帮上忙呢 您应使用扫描仪读取字符串 Scanner s = new Scanner(your string); 然后使用 s.nextInt(); 然后添加这些整数。您应使用扫描仪读取字符串 Scanner s = new Scanner(your string); 然后使用 s.ne

我想写一个java程序来返回参数字符串中所有整数的总和。 例如,以一个字符串为例:“12 hi when 8 and 9” 现在的答案是12+8+9=29。
但我真的不知道该怎么开始,谁能帮上忙呢

您应使用扫描仪读取字符串

   Scanner s = new Scanner(your string);
然后使用

  s.nextInt();

然后添加这些整数。

您应使用扫描仪读取字符串

   Scanner s = new Scanner(your string);
然后使用

  s.nextInt();

然后添加这些整数。

您可以先将
字符串中的所有非数字替换为
空格
,然后根据
空格
将其拆分

String str = "12 hi when 8 and 9";
str=str.replaceAll("[\\D]+"," ");
String[] numbers=str.split(" ");
int sum = 0;
for(int i=0;i<numbers.length;i++){
    try{
        sum+=Integer.parseInt(numbers[i]);
    }
    catch( Exception e ) {
      //Just in case, the element in the array is not parse-able into Integer, Ignore it
    }
}
System.out.println("The sum is:"+sum);
String str=“12 hi when 8 and 9”;
str=str.replaceAll(“[\\D]+”,”);
字符串[]数字=str.split(“”);
整数和=0;

对于(int i=0;i您可以先将
字符串
中的所有非数字替换为
空格
,然后根据
空格
将其拆分

String str = "12 hi when 8 and 9";
str=str.replaceAll("[\\D]+"," ");
String[] numbers=str.split(" ");
int sum = 0;
for(int i=0;i<numbers.length;i++){
    try{
        sum+=Integer.parseInt(numbers[i]);
    }
    catch( Exception e ) {
      //Just in case, the element in the array is not parse-able into Integer, Ignore it
    }
}
System.out.println("The sum is:"+sum);
String str=“12 hi when 8 and 9”;
str=str.replaceAll(“[\\D]+”,”);
字符串[]数字=str.split(“”);
整数和=0;

对于(inti=0;i,这里是一般算法:

int sumString(String input)
{
    int output = 0;
    for (String token : input.split(" "))
    {
        try
        {
            output += Integer.parseInt(token);
        }
        catch (Exception error)
        {
        }
    }
    return output;
}
  • 将和初始化为零
  • 按空格拆分字符串,对于每个标记:
    • 尝试将令牌转换为整数
    • 如果没有引发异常,则将整数添加到总和中

  • 下面是一个编码示例:

    int sumString(String input)
    {
        int output = 0;
        for (String token : input.split(" "))
        {
            try
            {
                output += Integer.parseInt(token);
            }
            catch (Exception error)
            {
            }
        }
        return output;
    }
    

    以下是一般算法:

    int sumString(String input)
    {
        int output = 0;
        for (String token : input.split(" "))
        {
            try
            {
                output += Integer.parseInt(token);
            }
            catch (Exception error)
            {
            }
        }
        return output;
    }
    
  • 将和初始化为零
  • 按空格拆分字符串,对于每个标记:
    • 尝试将令牌转换为整数
    • 如果没有引发异常,则将整数添加到总和中

  • 下面是一个编码示例:

    int sumString(String input)
    {
        int output = 0;
        for (String token : input.split(" "))
        {
            try
            {
                output += Integer.parseInt(token);
            }
            catch (Exception error)
            {
            }
        }
        return output;
    }
    
    private static int GetSumofIntegratersInstalling(字符串){
    /*拆线*/
    String[]stringArray=String.split(“”);
    整数和=0;
    内部温度=0;
    对于(int i=0;i
    private static int GetSumofIntegratersInstalling(字符串){
    /*拆线*/
    String[]stringArray=String.split(“”);
    整数和=0;
    内部温度=0;
    
    对于(inti=0;i可以使用正则表达式

    Pattern p = Pattern.compile("\\d+");
    String s = " 12 hi when 8 and 9" ;
    Matcher m = p.matcher(s);
    int start = 0;
    int sum=0;
    while(m.find(start)) {
        String n = m.group();
        sum += Integer.parseInt(n);
        start = m.end();
    }
    System.out.println(sum);
    

    这种方法不要求项目之间用空格分隔,因此它可以与“12HIWhen8和9”一起使用。

    您可以使用正则表达式

    Pattern p = Pattern.compile("\\d+");
    String s = " 12 hi when 8 and 9" ;
    Matcher m = p.matcher(s);
    int start = 0;
    int sum=0;
    while(m.find(start)) {
        String n = m.group();
        sum += Integer.parseInt(n);
        start = m.end();
    }
    System.out.println(sum);
    

    这种方法不要求项目之间用空格分隔,因此它可以与“12HIWhen8和9”一起使用。

    假设您的单词之间用空格分隔:

    然后将输入字符串拆分为“标记”(不带空格的连续字符)。 然后循环它们,尝试将它们转换为整数,如果抛出异常,则表示此标记不表示整数

    代码:


    假设您的单词由空格分隔:

    然后将输入字符串拆分为“标记”(不带空格的连续字符)。 然后循环它们,尝试将它们转换为整数,如果抛出异常,则表示此标记不表示整数

    代码:

    String s=“12 hi when 8 and 9”;
    s=s.replaceAll(“[^0-9]+”,”);
    字符串[]numbersArray=s.split(“”);
    整数和=0;
    对于(int i=0;i
    String s=“12 hi,当8和9时”;
    s=s.replaceAll(“[^0-9]+”,”);
    字符串[]numbersArray=s.split(“”);
    整数和=0;
    
    对于(int i=0;i您可以查看以下代码:-

    public class Class02 
    {
        public static void main(String[] args) 
        {
            String str = "12 hi when 8 and 9";
            int sum = 0;
            List<String> list = new ArrayList<String>();
            StringTokenizer st = new StringTokenizer(str.toLowerCase());
            while(st.hasMoreElements())
            {
                list.add(st.nextToken());
            }
            for(int i =0; i< list.size();i++)
            {
                char [] array = list.get(i).toCharArray();
                int num = array[0];
                if(!(num >= 'a' && num <= 'z'))
                {
                    int number = Integer.valueOf((list.get(i).toString()));
                    sum = sum + number;
                }
            }
            System.out.println(sum);
        }
    }
    
    公共类Class02
    {
    公共静态void main(字符串[]args)
    {
    字符串str=“8和9时为12高”;
    整数和=0;
    列表=新的ArrayList();
    StringTokenizer st=新的StringTokenizer(str.toLowerCase());
    而(st.hasMoreElements())
    {
    添加(st.nextToken());
    }
    对于(int i=0;i如果(!(num>='a'&&num您可以查看以下代码:-

    public class Class02 
    {
        public static void main(String[] args) 
        {
            String str = "12 hi when 8 and 9";
            int sum = 0;
            List<String> list = new ArrayList<String>();
            StringTokenizer st = new StringTokenizer(str.toLowerCase());
            while(st.hasMoreElements())
            {
                list.add(st.nextToken());
            }
            for(int i =0; i< list.size();i++)
            {
                char [] array = list.get(i).toCharArray();
                int num = array[0];
                if(!(num >= 'a' && num <= 'z'))
                {
                    int number = Integer.valueOf((list.get(i).toString()));
                    sum = sum + number;
                }
            }
            System.out.println(sum);
        }
    }
    
    公共类Class02
    {
    公共静态void main(字符串[]args)
    {
    字符串str=“8和9时为12高”;
    整数和=0;
    列表=新的ArrayList();
    StringTokenizer st=新的StringTokenizer(str.toLowerCase());
    而(st.hasMoreElements())
    {
    添加(st.nextToken());
    }
    对于(int i=0;i如果(!(num>='a'&&num我知道它没有Java8标记,但我会把它放在那里,以防有人觉得有趣

    String str = "12 hi when 8 and 9";
    System.out.println(Arrays.stream(str.split(" "))
          .filter(s -> s.matches("[0-9]+")).mapToInt(Integer::parseInt).sum());
    

    会很好地打印出29个

    我知道这没有Java8标签,但我会把它放在那里,以防有人觉得有趣

    String str = "12 hi when 8 and 9";
    System.out.println(Arrays.stream(str.split(" "))
          .filter(s -> s.matches("[0-9]+")).mapToInt(Integer::parseInt).sum());
    

    将很好地打印出29

    字符串“abc123def”如何。我希望输出为1+2+3=6。当前prgm给出123作为output@Coder17这是一个不同的要求。输出是123,因为对于此代码,
    “123”
    被视为一个整数。关于字符串“abc123def”.我预计输出为1+2+3=6。当前prgm给出123作为output@Coder17这是一个不同的要求。输出是123,因为对于此代码,
    “123”
    被视为一个整数