生活服务
Java代码写歌词_歌词整理的程序实现
2025-01-02 16:38  浏览:63

importjava.awt.BorderLayout;importjava.awt.Container;importjava.awt.Dimension;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Iterator;importjava.util.regex.Matcher;importjava.util.regex.Pattern;importjavax.swing.JButton;importjavax.swing.JFileChooser;importjavax.swing.Jframe;importjavax.swing.JLabel;importjavax.swing.JPanel;publicclassSortLrc {privateFile lrcFile=null;privateString lrcDir="";privateJFileChooser dirChoose=newJFileChooser();privateJFileChooser fileChoose=newJFileChooser();privateJFileChooser chooser=newJFileChooser();privateJButton saveButton=newJButton("保存路径");privateJButton selectButton=newJButton("选择lrc文件");privateJLabel saveLable=newJLabel("d:");privateJLabel selectLable=newJLabel("d:");privateJPanel panelButton=newJPanel();privateJPanel panelLabel=newJPanel();privateJPanel panelSort=newJPanel();privateJButton sortButton=newJButton("排序歌词");publicSortLrc() {

Jframe frame=newJframe("歌词文件整理");

frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);//选择目录,选择文件的话注释掉这行。dirChoose.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

fileChoose.setFileSelectionMode(JFileChooser.FILES_ONLY);

saveButton.addActionListener(newActionListener() {publicvoidactionPerformed(ActionEvent e) {intretValue=dirChoose.showSaveDialog(saveButton);if(retValue==JFileChooser.APPROVE_OPTION) {

lrcDir=dirChoose.getSelectedFile().toString();

saveLable.setText(dirChoose.getSelectedFile().toString());

}

}

});

selectButton.addActionListener(newActionListener() {publicvoidactionPerformed(ActionEvent e) {intretValue=fileChoose.showSaveDialog(selectButton);if(retValue==JFileChooser.APPROVE_OPTION) {

lrcFile=fileChoose.getSelectedFile();

selectLable

.setText(fileChoose.getSelectedFile().toString());

}

}

});

sortButton.addActionListener(newActionListener() {

@OverridepublicvoidactionPerformed(ActionEvent e) {try{

sortLrc();

}catch(IOException iOE) {

System.out.println("整理歌词失败");

}

}

});

panelButton.add(selectButton);

panelLabel.add(selectLable);

panelButton.add(saveButton);

panelLabel.add(saveLable);

panelSort.add(sortButton);

panelLabel.setLayout(newGridLayout(2,2,20,20));

panelButton.setLayout(newGridLayout(2,2,20,20));

Container pane=frame.getContentPane();

pane.setLayout(newBorderLayout());

pane.add(panelButton, BorderLayout.WEST);

pane.add(panelLabel, BorderLayout.CENTER);

pane.add(panelSort, BorderLayout.SOUTH);

frame.setPreferredSize(newDimension(400,300));

frame.pack();

frame.setLocation(400,200);

frame.setVisible(true);

}privatevoidsortLrc()throwsIOException {

ArrayListsortList=newArrayList();

FileReader fr=newFileReader(lrcFile);

BufferedReader br=newBufferedReader(fr);

StringBuilder sb=newStringBuilder();

String str="";while((str=br.readLine())!=null) {if(!isTimeLine(str)) {

sb.append(str+" ");

}else{

speLine(str, sortList);

}

}

Collections.sort(sortList);for(Iteratoriterator=sortList.iterator(); iterator

.hasNext();) {

LrcTimeFormat lrcTimeFormat=(LrcTimeFormat) iterator.next();

sb.append(lrcTimeFormat+" ");

}

File sortFile=newFile(lrcDir+"\"+lrcFile.getName());

System.out.println(sortFile.getAbsolutePath());

FileWriter fw=newFileWriter(sortFile);

fw.write(sb.toString());

br.close();

fr.close();

fw.close();

}privatestaticBoolean isTimeLine(String str) {

String timeRege=".*\[[\d]{2}\:[\d]{2}\.[\d]{2}\].*";returnstr.matches(timeRege);

}privatestaticvoidspeLine(String str, ArrayListlist) {

String timeRege="\[[\d]{2}\:[\d]{2}\.[\d]{2}\]";

Pattern p=Pattern.compile(timeRege);

Matcher m=p.matcher(str);

String tail=str.replaceAll("\[.*\]","");while(m.find()) {

String lineUnit=m.group()+tail;//System.out.println(lineUnit);list.add(newLrcTimeFormat(lineUnit));

}

}publicstaticvoidmain(String[] args) {newSortLrc();

}

    以上就是本篇文章【Java代码写歌词_歌词整理的程序实现】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/tnews/4517.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 http://ww.kub2b.com/mobile/ , 查看更多   
最新文章
电信怎么设置呼叫转移功能,座机怎么设置呼叫转移功能oppo手机怎么设置呼叫转移「电信怎么设置呼叫转移功能,座机怎么设置呼叫转移功能」
最佳答案1.我们拨通10000,然后再按照语音提示接通人工服务; 2.然后我们再让客服来开通呼叫转移这个功能,还有其他两个选项,但
把强大的chrome浏览器安装到手机上,并支持电脑版的各种扩展CRX插件chrome手机版「把强大的chrome浏览器安装到手机上,并支持电脑版的各种扩展CRX插件」
发现了一款强大的手机版chrome浏览器,这个绝对不是应用市场里面的那个chrome,应用市场里的chrome不够强大,而且无法安卓扩展插
红警大作战尤里的复仇红警复仇手机版「红警大作战尤里的复仇」
红警大作战尤里的复仇是一款经典游戏的延续之作,经典的游戏红色警戒相信大家都玩过,这款游戏是在经典的基础上加以进化,让玩家
超千亿元回购增持再贷款!A500ETF今日低开高走,实时成交额突破9000万元
消息面上,自去年10月18日股票回购增持再贷款政策工具正式设立至今已半年,上市公司和主要股东积极响应。据Wind资讯数据统计,截
折叠手机铰链耐久度对决!三星超越摩托罗拉,OPPO表现引人瞩目摩托罗拉折叠手机「折叠手机铰链耐久度对决!三星超越摩托罗拉,OPPO表现引人瞩目」
前几日,有外网博主进行了一项“利好消费者但很无聊”的实验,就是直播两款折叠手机的铰链耐用度,型号分别是对三星Galaxy Z Fli
金饰价格最高突破1000元/克!上海金ETF(518600)开盘延续涨势,已连续12日获资金布局,冲击5连涨
【国际金价续创历史新高,金饰价格突破1000元/克】消息面上,受国际金价继续上涨影响,国内各金饰品牌挂牌价格也随之攀升至历史
手机拍摄屏幕时条纹的问题与解决:揭秘摩尔纹现象及拍摄技巧手机拍电脑屏幕有条纹怎么解决「手机拍摄屏幕时条纹的问题与解决:揭秘摩尔纹现象及拍摄技巧」
在现代智能手机普及的今天,拍摄屏幕内容已经成为许多用户日常生活中的一部分。然而,在这一过程中,时常会出现一现象:拍摄的照
“全球新一代豪华中大型电混轿车”推动“豪华平权”
4月10日,“全球新一代豪华中大型电混轿车”星耀8启动预售。新车推出搭载雷神EM-P超级电混和雷神EM-i超级电混的双动力版本,共计
苹果手机应用宝在哪里苹果手机下载应用宝「苹果手机应用宝在哪里」
对于许多苹果手机用户来说,应用宝这款应用商店并不陌生。作为腾讯旗下的手机应用商店,应用宝以其丰富的应用资源和便捷的下载方
倒班排班助手排班软件手机版「倒班排班助手」
倒班排班助手app方便用户的工作管理非常的适合哪些工作需要轮班的人员,一键的设置非常的便捷,自定义班次,还可以便捷的进行备