这里的文件处理,我不是很会,这里是做了一个集总,可以参考一下别人的想法,还得继续学习呀,现在还是不知道自己的错误出在哪里。emmm
package javaapplication12;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author lenovo
*/
public class JavaApplication12 {
/**
* @param args the command line arguments
* 2018年复试
* 1、两个正整数间所有偶数和
* 2、输入一个数,计算1+2+2+3+3+3+4....+n+.....+n
* 3、迭代法求解平方根
* 4、读文件,统计行数,大小写字母,数字
* 5、定义一个函数,二项式的展开,数组存储系数
* 6、选择排序的主要代码
* 7、递归逆序输出一个数字的不同数位
* 8、链表的删除操作函数
*/
//1
/* public static void main(String[] args){
Scanner sc =new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
int sum=0;
for(int i=a;i<=b;i++){
if(i%2==0){
sum+=i;
}
}
System.out.println(sum);
}}*/
//2
/* int n=sc.nextInt();
int sum=0;
for(int i=1;i<=n;i++){
sum+=PartSum(i);
}
System.out.println(sum);}
public static int PartSum(int a){
int sum1=0;
for(int i=0;i<a;i++){
sum1+=a;
}return sum1;
}
}*/
//3
/* public static void main(String[] args){
Scanner sc =new Scanner(System.in);
float a=sc.nextFloat();
float x=a;
while(x*x>a){
x=(x+a/x)/2;
}System.out.println(x);
}}*/
//这是两种牛顿迭代法,本质都一样
/* float x=sc.nextFloat();
float a=0;
float b=1;
while(Math.abs(b-a)>0.00001){
a=b;
b=(a+x/a)/2;//此处是公式,可去LeetCode查询“X的平方根”,上面有讲解
}
System.out.println(b);}}*/
//4
/* public static void main(String[] args) throws IOException {
System.out.println("请输入文本名:");//系统找不到文件
Scanner sc = new Scanner(System.in);
String str=sc.nextLine();
File a =new File(str);
FileReader fr=new FileReader(a);
BufferedReader br =new BufferedReader(fr);
String s=null;
String d=null;
int count=0,count1=0,count2=0,count3=0,count4=0;
System.out.println("文本的内容为:");
while((s=br.readLine())!=null){
char t[]=s.toCharArray();
for(int i=0,j=0;i<s.length();i++,j=i){
d=Character.toString(t[i]);
if(d.matches("[\\u4e00-\\u9fa5]+")){
count++;
}else if(d.matches("[0-9]"))count1++;
else if(d.matches("[A-Z]"))count2++;
else if(d.matches("[a-z]"))count3++;
else count4++;}System.out.println(s);}
System.out.println("wenben");
System.out.println(a.length());
System.out.println("汉字"+count);
}
}
*/
/* public static void main(String[] args){
// 对于文件,现在不熟练,也不知道是哪里出问题
try { File file=new File("\"D:\\12\\34.txt\"");//有错误,说是文件不存在
if(file.exists()){
FileReader fr=new FileReader(file);
LineNumberReader lnr =new LineNumberReader(fr);
int linenumber=0;
while(lnr.readLine()!=null){
linenumber++;
}
System.out.println(linenumber);
lnr.close();
}else System.out.println("File does not exists");
}
catch (IOException e) {
e.printStackTrace();
//Logger.getLogger(JavaApplication12.class.getName()).log(Level.SEVERE, null, ex);
}
}
}*/
//5使用递归解决
/* Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
for(int i=0;i<=n;i++){
System.out.print(suan(i,n));//通过二项式计算公式得到二项式系数
}
}
public static int suan(int k,int n){
if(k==0||k==n)return 1;
else return suan(k,n-1)+suan(k-1,n-1);
}}*/
//5(用杨辉三角解决)
/* jisuna(n);}
public static void jisuna(int n){
int arr[][]=new int[n][];
for(int i=0;i<n;i++){
arr[i]=new int[i+1];}
for(int i=0;i<arr.length;i++){
for(int j=0;j<i+1;j++){
if(i==j||j==0||i==0){
arr[i][j]=1;}
else{arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
// System.out.print(arr[i][j]+"\t");
} //System.out.println();
}
int index=0;
int []b=new int[n];
for(int i=0;i<arr[n-1].length;i++){//将杨辉三角的最后一行存储在b数组中,即为二项式展开系数
b[index]=arr[n-1][i];
index++;
}
for(int bb:b){
System.out.print(bb+" ");
}
}}/*
/*
jisuna(sc.nextInt());
}
public static void jisuna(int n){
int [][]a=new int[n][];
for(int i=0;i<n;i++){
a[i]=new int[i+1];}
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
if(j==a[i].length-1||j==0){//两种不同的方法计算杨辉三角,都一样
a[i][j]=1;}
else{
a[i][j]=a[i-1][j-1]+a[i-1][j];}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<a[i].length;j++){
System.out.print(a[i][j]);
}System.out.println();
}
int index=0;
int []b=new int[n];
for(int i=0;i<a[n-1].length;i++){//注意此处的数组下标是n-1
b[index]=a[n-1][i];
index++;
} for(int bb:b){
System.out.print(bb+" ");
}
}}*/
//6
/* public static void main(String[] args){
Scanner sc =new Scanner(System.in);
int a[]=new int[sc.nextInt()];
for(int i=0;i<a.length;i++){
a[i]=sc.nextInt();
}
//选择排序
for(int i=0;i<a.length;i++){
int min=i;
for(int j=i;j<a.length;j++){
if(a[min]>a[j]){
min=j;
}}
if(min!=i){
int temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
System.out.println("排序后:");
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}}*/
//7
/*public static void main(String[] args){
Scanner sc =new Scanner(System.in);
int n=sc.nextInt();
printDigits(n);
}
public static void printDigits(int n){
if(n<10){
System.out.println(n);
}else{
System.out.println(n%10);//取末尾的数
printDigits(n/10);//逆序输出
/* printDigits(n/10);这是正序输出
System.out.println(n%10);//取末尾的数
}
}}*/
//8
/*
Node head=null;
class Node{//定义结点
Node next=null;
int data;
public Node(){
}
public Node(int data){
this.data=data;
}
}
public void printList(){//打印输出链表
Node tmp=head;
while(tmp!=null){
System.out.print(tmp.data+" ");
tmp=tmp.next;
}
}
public void addNode(int d){//增加结点
Node newNode=new Node(d);
if(head==null){
head=newNode;return;
}
Node tmp=head;
while(tmp.next!=null){//找到尾节点
tmp=tmp.next;
}tmp.next=newNode;
}
public int length(Node head){//计算链表的长度
int length=0;
Node tmp=head;
while(tmp!=null){
length++;
// System.out.println("当前链表长度为"+length);
tmp=tmp.next;
}return length;
}
public boolean deleteNode(int index){//删除第index个结点
JavaApplication12 ja=new JavaApplication12();
System.out.println("链表长度为"+ja.length(head));
if(index<1||index>ja.length(head)){
return false;
}
if(index==1){
head=head.next;
return true;
}
int i=1;
Node preNode =head;
Node curNode =preNode.next;
while(curNode!=null)
{
if(i==index){//如果找到索引为index的结点
preNode.next=curNode.next;
return true;
}
preNode =curNode;//表示将preNode指向curNode,向后移动
curNode = curNode.next;
i++;
}return false;
}
public static void main(String[] args){
/* Collection b=new ArrayList();
//这里是小插曲,集合的Iterator遍历方法
b.add(90);
b.add(80);
b.add(56);
Iterator it =b.iterator();
while(it.hasNext()){
Object obj= it.next();
System.out.println(obj);
}
int g=80;
b.remove(g);
System.out.println("此时集合内有"+b.size()+"个");
//此行之后的代码是删除链表第index个元素
Scanner sc =new Scanner(System.in);
JavaApplication12 jal =new JavaApplication12();
int n =sc.nextInt();
int a[]=new int[n];
for(int i=0;i<n;i++){
a[i]=sc.nextInt();
}
for(int i=0;i<n;i++){
jal.addNode(a[i]);
}
jal.printList();//打印输出没删除之前的元素
boolean bc= jal.deleteNode(2);
System.out.println(bc);
jal.printList();//删除之后打印输出现在的链表元素
}
}*/