字符频率程序不起作用
character frequency program does not work
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
@SuppressWarnings("unused")
public class Input {
public static void main(String[] args) throws FileNotFoundException {
@SuppressWarnings("resource")
String input = new Scanner( new File("characterfreq.txt") ).useDelimiter("\A").next();
char[] character = input.toCharArray();
int size = character.length;
int i = 0, j = 0;
float count = 0;
for (i=0; i < size; ++i) {
count = 0;
for (j = 0; j < size; ++j) {
if (j < i && character[i] == character[j]) {
break;
}
if (character[j] == character[i])
count++;
}
if (j == size-1) {
System.out.println(character[i]+" is present "+count/size+" times");
}
}
}
}
请你帮帮我,当我 运行 代码没有任何反应时,我的代码 运行 曾经很好,我添加了另一行并把它搞砸了,现在我不能找出我做错了什么
您在 for 循环中的第二个 if
构造中遗漏了代码中的左括号,插入括号,它应该可以工作:
if (character[j] == character[i]) {
count++;
}
还可以更改您的打印语句以仅打印 count
,如果您想要实际频率则不打印 count/size
。
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
@SuppressWarnings("unused")
public class Input {
public static void main(String[] args) throws FileNotFoundException {
@SuppressWarnings("resource")
String input = new Scanner( new File("characterfreq.txt") ).useDelimiter("\A").next();
char[] character = input.toCharArray();
int size = character.length;
int i = 0, j = 0;
float count = 0;
for (i=0; i < size; ++i) {
count = 0;
for (j = 0; j < size; ++j) {
if (j < i && character[i] == character[j]) {
break;
}
if (character[j] == character[i])
count++;
}
if (j == size-1) {
System.out.println(character[i]+" is present "+count/size+" times");
}
}
}
}
请你帮帮我,当我 运行 代码没有任何反应时,我的代码 运行 曾经很好,我添加了另一行并把它搞砸了,现在我不能找出我做错了什么
您在 for 循环中的第二个 if
构造中遗漏了代码中的左括号,插入括号,它应该可以工作:
if (character[j] == character[i]) {
count++;
}
还可以更改您的打印语句以仅打印 count
,如果您想要实际频率则不打印 count/size
。