A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package com.itheima.day1117;

  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import java.util.List;

  5. public class Demo_text09 {

  6.         public static void main(String[] args) {
  7.                 List<Integer> list = new ArrayList<Integer>();
  8.                 list.add(1);
  9.                 list.add(2);
  10.                 list.add(3);
  11.                 list.add(4);
  12.                 list.add(5);
  13.                 list.add(6);
  14.                 list.add(7);
  15.                 list.add(8);
  16.                 list.add(9);
  17.                
  18.                 List<Integer> list2 = new ArrayList<Integer>();
  19.                 list2.add(11);
  20.                 list2.add(12);
  21.                 list2.add(13);
  22.                 list2.add(14);
  23.                 list2.add(15);
  24.                 list2.add(16);
  25.                 list2.add(17);
  26.                 list2.add(18);
  27.                 list2.add(19);
  28.                
  29.                 replceAll(list,7,list2);
  30.                 System.out.println(list);
  31.        

  32.         }
  33.         public static void replceAll(List<Integer> list,int index,List<Integer> list2){
  34.                 int count = 0;
  35.                 if (index < list.size()) {
  36.                         if ((list.size()+1-index - list2.size()) >= 0) {
  37.                                 for (int i = count; i < list2.size(); i++) {
  38.                                 list.remove(index);
  39.                                 list.add(index, list2.get(count));
  40.                                 count++;
  41.                                 index++;
  42.                                 }
  43.                         }else if ((list.size()+1-index - list2.size()) < 0) {
  44.                                 for (int i = index; i < list.size(); i++) {
  45.                                         list.remove(i);
  46.                                         list.add(i, list2.get(count));
  47.                                         count++;
  48.                                 }
  49.                                 for (int i = count; i < list2.size(); count++,i++) {
  50.                                         list.add(list2.get(count));
  51.                                 }
  52.                         }
  53.                 }
  54.                 else {
  55.                         System.out.println("您输入的角标值有误!!");
  56.                 }
  57.         }
  58. }
复制代码

19 个回复

正序浏览
学到了
回复 使用道具 举报
和你差不多的 ,不怎么写,要改.
回复 使用道具 举报
jlq 中级黑马 2015-11-19 23:53:33
17#
jaiyouba  小年轻
回复 使用道具 举报
yubail 中级黑马 2015-11-19 23:16:59
16#
支持一下
回复 使用道具 举报
亲没有注释啊,看着有点小别扭
回复 使用道具 举报
本帖最后由 橘子果酱 于 2015-11-19 14:43 编辑
  1. package com.heima23;

  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileNotFoundException;
  7. import java.io.FileOutputStream;
  8. import java.io.IOException;
  9. import java.util.Scanner;
  10. /*
  11. * 键盘获取两个文件夹路径,将其中的一个文件夹中的.java文件改为.tat文件并拷贝到另一个文件夹中
  12. *
  13. * 创建目标文件夹,在目标文件夹中创建原文件夹名
  14. * 获取路径下的所有文件或文件夹 封装成 File数组
  15. * 遍历数组
  16. * 如果是文件   如果文件是以.java结尾  就用IO流读 并改名
  17. * 改名后用IO流写 改过名后的文件
  18. * 是文件夹有调用递归
  19. * 关流
  20. * */
  21. public class Practice_CopyFile {

  22.         public static void main(String[] args) throws IOException {
  23.                 File src = getFile();        //原文件路径
  24.                 File dest = getFile();        //目标文件夹路径
  25.                                 
  26.                 copy(src,dest);                        //调用复制功能
  27.                
  28.         }

  29.         public static File getFile() {
  30.                         //创建键盘录入对象
  31.                 Scanner sc = new Scanner(System.in);
  32.                 System.out.println("请录入一个文件夹路径:");
  33.                         //无限循环
  34.                 while(true){
  35.                         String line = sc.nextLine();
  36.                         //将字符串封装成File对象
  37.                         File file = new File(line);
  38.                         //如果路径不存在,提示
  39.                         if(!file.exists()){
  40.                                 System.out.println("不存在,重新录。。。。");
  41.                         //如果是文件路径,提示
  42.                         }else if(file.isFile()){
  43.                                 System.out.println("您录得是文件,请录文件夹路径。。。。");
  44.                         }else{
  45.                         //返回文件
  46.                                 return file;
  47.                         }
  48.                 }
  49.         }
  50.         
  51.         public static void copy(File src, File dest) throws IOException{
  52.                 //创建目标文件夹,并在目标文件夹中创建原文件夹名
  53.                 File newDir = new File(dest,src.getName());
  54.                 newDir.mkdir();
  55.                 //获取路径下的所有文件或文件夹 封装成File数组
  56.                 File[] subFiles = src.listFiles();
  57.                 //遍历数组
  58.                 for(File subFile : subFiles){
  59.                 //判断如果是文件
  60.                         if(subFile.isFile()){
  61.                                 //如果文件名是以.java结尾
  62.                                 if(subFile.getName().endsWith(".java")){
  63.                                 //用IO流读
  64.                                         BufferedInputStream bis = new BufferedInputStream(
  65.                                                         new FileInputStream(subFile));        
  66.                                 //改名
  67.                                         String subFileName = subFile.getName();                                       
  68.                                         String newName = subFileName.replace(".java", ".txt");
  69.                                         File  fff = new File(dest, newName);
  70.                                 //用IO流写 改名后的文件
  71.                                         BufferedOutputStream bos = new BufferedOutputStream(
  72.                                                         new FileOutputStream(fff));
  73.                                 //高效读取
  74.                                 byte[] bys = new byte[1024*8];
  75.                                 int len;
  76.                                 while((len = bis.read(bys))!= -1){
  77.                                         bos.write( bys,0,len);                                       
  78.                                 }
  79.                                 //关流
  80.                                 bis.close();
  81.                                 bos.close();                                
  82.                                 }                                                               
  83.                                 //是文件夹就调用递归
  84.                         }else {
  85.                                 copy(subFile,newDir);
  86.                         }
  87.                 }
  88.         }
  89.         

  90. }
复制代码
回复 使用道具 举报
多写点注释吧,这么写很难理解你的思路
回复 使用道具 举报
小鹿 发表于 2015-11-18 13:30
没写注释的越看越别扭!

恩恩,我这个毛病得治,自己有思路的时候噼里啪啦的一下子就给敲了,但是别人来看的时候就蒙了
回复 使用道具 举报
ln0491 发表于 2015-11-18 11:49
不错,牛。。。。。。。。。。

惭愧,只是把题目看错了,本来是要把集合中的a元素替换成b元素,我理解成了一个新集合是替换老集合,写这个题对于我这种小白,花了半个小时敲代码,花了半个小时找错误。是在惭愧
回复 使用道具 举报
李子博 发表于 2015-11-18 00:55
让自己重新振作起来,重新年轻起来,重新为自己热泪盈眶!

呵呵,这是在给自己打气么?
回复 使用道具 举报
厉害啊,
回复 使用道具 举报
zhuchen 中级黑马 2015-11-19 00:05:24
8#
我不会格式```````
回复 使用道具 举报
好厉害!!!!!!!
回复 使用道具 举报
没写注释的越看越别扭!
回复 使用道具 举报
不错,牛。。。。。。。。。。
回复 使用道具 举报
让自己重新振作起来,重新年轻起来,重新为自己热泪盈眶!
回复 使用道具 举报
220070918807
回复 使用道具 举报
就是有一个坏毛病,每次写代码都不加注释,这个问题一直是病。得治!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马