化学分子式程序题

      输入任意一种物质的化学分子式,要求输出其每种组成元素的数量。

比如
碳酸钙的分子式为 CaCO3,其元素组成分别为 Ca:1,C:1,O:3
乙醇的分子式 C2H5OH,其元素组成分别为 C:2,H:6,O:1
硫酸铁的分子式为 Fe2(SO4)3,其元素组成分别为 Fe:2,S:3,O:12
(注意:元素名称首字母大写,剩余字母都小写;括号括起来表示括号中的结构作为
整体出现多少次)
输入:分子式字符串;比如乙醇和硫酸铁的分子式输入分别为 C2H5OH,Fe2(SO4)3
输出:每种元素数量;比如乙醇和硫酸铁的分子式输入后,输出分别为 C2H6O1 和Fe2S3O1

//返回字符串中存在的指定字符的全部索引
public static int[] CharIndex(string str, string s, string e)
//从一个字符串,获取指定两个不同字符,中间的字符的方法
public static string[] MidChars(string str, string s, string e)
//分析指定字符后面两位字符是否有数字并返回数字
public static int IsNumBehind(string str, string s, string e)
//打印数组中的元素
public static void LogArr(Array ayy)

详细的内部参考方法可以参考方法内部的写法

using System;
using UnityEngine;
using System.Collections.Generic;
public static class StrHelper
{
    // 返回字符串中存在的指定字符的全部索引
    public static int[] CharIndex(string str,string _char){
        int index = 0;
        List<int> list = new List<int>();
        while((index = str.IndexOf(_char,index))!=-1){
            list.Add(index);
            index = index + _char.Length;
        }

        return list.ToArray();
    }

    // 从一个字符串,获取指定两个不同字符,中间的字符串方法
    public static void MidChars(string str,string s,string e){
        int[] sIndex = CharIndex(str,s);
        int[] eIndex = CharIndex(str,e);

        //LogArr(eIndex);

        for(int i=0;i<sIndex.Length;i++){
            int a = sIndex[i]+s.Length;
            int b = eIndex[i]-a;
            string temp = str.Substring(a,b);
            Debug.Log(temp);
        }
    }

    public static void LogArr(Array arr){
        foreach(var a in arr){
            Debug.Log(a);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值