有了新的移动硬盘,于是一口气下了650集的海贼王,于是,需求来了。

虽然不是处女座,但也难以容忍600多集的海贼王一会儿这个命名格式,一会儿另一种命名格式。于是想到了自己是个IT人,于是想通过编程统一命名格式。

1,需求,要保留每一个文件的集数显示,但是要统一格式,主要有下面三种文件形式。

我们可以分析出,集数都是集中在一起作为文件名的一个连续字符串,于是想到通过获得收尾数字的位置,然后截取字符串,于是有了下面的方法。

public static String changeName2(String name) {

int m = 0, n = 0;

for (int i = 0; i < name.length(); i++) {

if (name.charAt(i) - '0' >= 0 && name.charAt(i) - '9' <= 0) {

m = i;

break;

}

}

for (int i = name.length() - 1; i >= 0; i--) {

if (name.charAt(i) - '0' >= 0 && name.charAt(i) - '9' <= 0) {

n = i;

break;

}

}

return name.substring(m, n + 1);

}

运行代码后发现了问题,有的文件格式是mp4格式的,mp4中的4影响了我截取集数,于是只要再上面方法中重新加了个判断,如果有mp4,于是给删了,新方法如下:

public static String changeName2(String name) {

if (name.contains("mp4")) {

name = name.replace("mp4", "");

}

int m = 0, n = 0;

for (int i = 0; i < name.length(); i++) {

if (name.charAt(i) - '0' >= 0 && name.charAt(i) - '9' <= 0) {

m = i;

break;

}

}

for (int i = name.length() - 1; i >= 0; i--) {

if (name.charAt(i) - '0' >= 0 && name.charAt(i) - '9' <= 0) {

n = i;

break;

}

}

return name.substring(m, n + 1);

}

2,重新运行了一遍,终于全部搞定,就是处女座也不要挑刺了。贴上全部代码。

package MyJava;

import java.io.File;

import java.util.ArrayList;

public class SunTest {

public static void main(String[] args) {

ArrayList fileNames = getFileNames();

for (String name : fileNames) {

System.out.println(name);

}

}

/**

* 得到所有文件的文件名

*

* @return

*/

public static ArrayList getFileNames() {

ArrayList nameList = new ArrayList();

File mydir = new File("H://onepiece");

File[] listFiles = mydir.listFiles();

for (File file : listFiles) {

String filename = file.getName();

filename = changeName2(filename);

boolean result = file.renameTo(new File("H://onepiece",

"[one_piece-海贼王][" + filename + "].rmvb"));

System.out.println(result);

nameList.add(file.getName());

}

return nameList;

}

/**

* 输入文件名,返回需要的集数字符串

*

* @param name

* @return

*/

public static String changeName2(String name) {

if (name.contains("mp4")) {

name = name.replace("mp4", "");

}

int m = 0, n = 0;

for (int i = 0; i < name.length(); i++) {

if (name.charAt(i) - '0' >= 0 && name.charAt(i) - '9' <= 0) {

m = i;

break;

}

}

for (int i = name.length() - 1; i >= 0; i--) {

if (name.charAt(i) - '0' >= 0 && name.charAt(i) - '9' <= 0) {

n = i;

break;

}

}

return name.substring(m, n + 1);

}

}

3,其实代码没什么难度,原先我是打算一个个改的,但现在能学以致用心里还是很舒服的。敲代码,不只是为了生活,还应该是一种。贴上效果图一张。

java海贼王_Java 学以致用--为我的海贼王统一命名相关推荐

  1. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  2. 海贼王之索隆是按照海贼王动画片为基础模型改编的

    海贼王之索隆是按照海贼王动画片为基础模型改编的.战斗模式是回合制的,先去找各个地方领取任务,然后跑到相应的地图去完成任务,人物完毕后会得到奖励, 但是不要光顾了杀怪忘记恢复,很容game over的. ...

  3. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  4. 什么是java内省_Java内省实例解析

    图像中轮廓的个数,里面vector的size代表了轮廓上点的个数.了解JavaBean 内省对应的英文单词为IntroSpector,它主要用于对JavaBean进行操作,JavaBean是一种特殊的 ...

  5. java 必备_Java基础必备

    标签: 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希 ...

  6. Java继承_Java面试题总结(一)

    1.JDK和JRE有什么区别? JDK:Java 的开发工具包,提供了 Java 的开发环境和运行环境 JRE:Java 的运行环境,为 Java 的运行提供了所需环境 具体来说:JDK 其实包含了 ...

  7. php和java语言_JAVA语言和PHP语言的比较

    JAVA语言和PHP语言的比较 JAVA语言在服务器端开发的流行以及安卓客户端开发的流行,让他占据了大部分市场份额.在服务器端还有一个语言也较为流行,就是PHP.PHP语言由于简单易学,响应速度快,在 ...

  8. future java 原理_Java线程池FutureTask实现原理详解

    前言 线程池可以并发执行多个任务,有些时候,我们可能想要跟踪任务的执行结果,甚至在一定时间内,如果任务没有执行完成,我们可能还想要取消任务的执行,为了支持这一特性,ThreadPoolExecutor ...

  9. 简单java题_java

    1.简单说明java的异常处理策略. 答: 1.将各类错误统一封装成异常对象 将各种不同原因引发的错误处理成"异常对象",为建立统一的异常处理机制奠定基础.异常处理就是捕获并处理该 ...

  10. java练习_Java基础笔试练习(一)

    Java基础笔试练习(一) 1. 若在某一个类定义中定义有如下的方法: abstract void performDial( ); 该方法属于() ? A.本地方法 B.最终方法 C.静态方法 D.抽 ...

最新文章

  1. Hibernate 中配置属性详解(hibernate.properties)
  2. 服务器上的VGA切换原理,VGA切换器使用方法和常见问题说明
  3. 给定三角形 ABC 和一点 P(x,y,z),判断点 P 是否在 ABC 内,给出思路并手写代码
  4. 如何查找Fiori UI上某个字段对应的后台存储表的名称
  5. PAT_B_1035_Java(25分)
  6. 服务器网盘系统怎么装,云服务器上怎么安装操作系统
  7. Git 远程配置_03
  8. 解决 PL/SQL Oracle错误:ORA-01033
  9. Eclipse 自动清理未使用 Import
  10. vue移动端项目使用自定义字体
  11. 抢红包算法 c++_【优化求解】基于粒子群算法的光伏电池MPPT控制策略
  12. 【大数据----Spark】Spark入门教程[3]
  13. 阿里滑块 某宝的x82y解决方法、x5sec
  14. 回首风雨路 笔记本二十年发展史
  15. UPS不间断电源测试技巧有哪些?
  16. oppo手机html文件管理,oppo手机文件管理里面的文件可不可以删除
  17. 鸡尾酒分类和制作材料中英文名
  18. DDoS 受控攻击源地域分布
  19. 2022年建筑电工(建筑特殊工种)考试模拟100题模拟考试平台操作
  20. 2021年3月四篇深度学习论文推荐

热门文章

  1. mysql 通过经纬度查询附近的地点位置
  2. android wight
  3. matlab中逗号分号冒号方括号,matlab中分号、冒号、逗号等常用标点符号的功能和用法总结...
  4. Arduino上U8g2库自定义中文库的经历
  5. 【U8+】用友U8+16.1不自动删除历史的自动备份文件
  6. 电脑搜索文件的服务器,Archivarius注册版
  7. Android序列化之Parcel
  8. 史上最全的信息收集总结!!!
  9. 远程桌面 服务器握手,《易语言远程控制技术教程》第2课_远程桌面(你的桌面我作主)王军...
  10. fpga驱动ad9854重大bug——已解决!