for loop(记得最后看的地方)&Character.isDigit()

ISJ*_*ISJ 0 java for-loop char

我必须做一个关于元素周期表的项目.我的困境如下.用户会向您发送分子方程式.它可以是任何长度.在这个数组中有大写字母,小写字母和数字.

我也有一个对象数组.每个对象代表元素周期表上的元素.现在我需要打破这个字符串,用户将我发送给更小的片段 - 由对象数组识别的片段.我还必须将答案乘以元素的最后一个字母旁边的数字或数字.

我已经尝试了以下内容.使字符串成为char数组.从后面运行数组 - 测试number(Character.isDigit(a[i]);),测试大写和小写......我总是遇到同样的问题.我不知道字符串会有多长.让我们说我找到一个数字.然后,如果前一个字符是小写字母,我需要另外检查大写字母.然后让我说我有分子方程式和我需要乘以的数量 - 如何让计算机知道从最后一个大写字母开始查看.

我希望有人理解这一点!

真的需要一些帮助.

另一个问题:为什么来这个代码不起作用:

String moleq = "HeKiLH2B6";

char[] a = moleq.toCharArray();
int g = moleq.length()-1;
int x = 1; //if not more than one of element - multiply getWeight by 1

int[][] indexofdigit = new int[moleq.length()][2];
int[] indexoflower = new int[moleq.length()];

for (int i = g; i <= 0; i--){

    if (Character.isDigit(a[i])) {
    String z = Character.toString(a[i]);
    x = Integer.parseInt(z);
    System.out.println("YES");

    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码永远不会打印出来是的?

Yek*_*sek 5

你的循环永远不会执行,因为你正在寻找i <= 0的条件.一开始并不是真的,因为g> 0,如果你改变为i> = 0,它将起作用