从起点仅提取字符串中的数字
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)
假设我从一个已经解码霍夫曼文本的文件中获取一个字符串,并且 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)