我正在编写一个用于计算文件中元音数量的赋值,目前在我的类中我们只使用这样的代码来检查文件的结尾:
vowel=0
f=open("filename.txt","r",encoding="utf-8" )
line=f.readline().strip()
while line!="":
for j in range (len(line)):
if line[j].isvowel():
vowel+=1
line=f.readline().strip()
Run Code Online (Sandbox Code Playgroud)
但是这次我们的任务由我们的教授给出的输入文件是一篇完整的文章,所以在整个文本中有几个空行来分隔段落和诸如此类的东西,这意味着我的当前代码只会计算到第一个空白行.
除了检查线路是否为空之外,有没有办法检查我的文件是否已到达终点?优选地,以类似的方式,我当前拥有我的代码,其中它检查while循环的每次迭代的某些内容
提前致谢
我已经为可比较数组,插入,合并和选择编写了排序方法,我通过改变我之前从排序int数组中获得的代码来完成此操作,而我只是将事物从int更改为Comparable.但是,当我为int数组做这个时,我非常清楚如何实际使用该方法,例如这是我对int的选择排序:
public void selectionSort(int[] list){
for (int i=0;i<list.length;i++){
for (int si=i;si<list.length;si++){
if (list[si]<list[i]){
int temp=list[i];
list[i]=list[si];
list[si]=temp;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是最终使用此方法的代码:
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int numItems,searchNum,location;
Sorts sort=new Sorts();
int[]test;
System.out.print("Enter the number of elements: ");
numItems=in.nextInt();
test=new int[numItems];
for (int i=0;i<test.length;i++){
test[i]=(int)(100*Math.random());
}
System.out.println("Unsorted: ");
displayArray(test);
sort.selectionSort(test);
System.out.println("Sorted: ");
displayArray(test);
Run Code Online (Sandbox Code Playgroud)
一切正常,但对于我的可比选择排序,我有这个代码:
public static void selectionSort(Comparable[] list){
for (int i=0;i<list.length;i++){
for (int si=i;si<list.length;si++){
if (list[si].compareTo(list[i])<0){
Comparable temp=list[i];
list[i]=list[si];
list[si]=temp;
}
}
}
} …Run Code Online (Sandbox Code Playgroud) arrays ×1
comparable ×1
file-io ×1
interface ×1
java ×1
loops ×1
python ×1
python-3.x ×1
sorting ×1