从起点仅提取字符串中的数字

Extracting only number in a string from a starting point

假设我从一个已经解码霍夫曼文本的文件中获取一个字符串,并且 it.Example 中字符的频率是:“000111010 h:2#c:1” 我只想取 2 和 1 并将它们放入称为频率的整数数组列表中。 这是我为它写的方法,但它似乎不起作用:

public void extractFrequency() {
     char[] stringArray= new char[finalText.length()];
     stringArray=finalText.toCharArray();
     boolean startingNow=false;
     
     for (int i = 0; i < stringArray.length; i=+3) {
        
        if(stringArray[i]==' ')
            startingNow=true;
        
        if(startingNow=true) {
            frequencies.add((int)stringArray[i]);
            i++;
        }
        }
    System.out.println(frequencies);
}


你能帮帮我吗?

在检查 startingNow 是否为真的同时,检查当前字符是否为数字。如果是数字,则将其添加到列表中。但我不明白你为什么要循环 i+=3 。这可能对你有用。我在将它添加到列表时减去 48,以获得原始数字,因为字符系统“0”从 48 开始。

public void extractFrequency() {
     char[] stringArray= new char[finalText.length()];
     stringArray=finalText.toCharArray();
     boolean startingNow=false;
     
     for (int i = 0; i < stringArray.length; i++) {
        
        if(stringArray[i]==' ')
            startingNow=true;
        
        if(startingNow==true && Character.isDigit(stringArray[i])) {//should be startingNow==true not startingNow=true
            frequencies.add(stringArray[i] - 48);
        }
        }
    System.out.println(frequencies);
}

它不起作用,因为你的代码有错误 if(startingNow=true) 应该是 if(startingNow==true)