<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    wangflood

    精心維護(hù)一個(gè)技術(shù)blog,為了工作,也是愛好。

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      14 Posts :: 19 Stories :: 8 Comments :: 0 Trackbacks

     

     

    10月底到深圳來找工作,一直沒有給人念想。然后我就在國(guó)際文化大廈宇商網(wǎng)做起了銷售,一邊找著工作。
    我想我沒有機(jī)會(huì)(因?yàn)槭嵌鞅究疲妥约簞?chuàng)造機(jī)會(huì)吧。每搞定一個(gè)客戶就想把他當(dāng)作自己的一個(gè)機(jī)會(huì)。
    所以一直跟客戶套近乎。
    其中有一個(gè)藍(lán)天科技的公司,問我能不能寫個(gè)程序來整理歌詞。如果行,我可以取得面試機(jī)會(huì),還會(huì)注冊(cè)為我們宇商網(wǎng)的會(huì)員。
    我花了二個(gè)小時(shí),搞定了。

    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.Iterator;
    import java.util.List;

    public class LrcTimeFormat implements Comparable<LrcTimeFormat> {

        String str;
        
    // java先執(zhí)行static體
        private int hour;
        
    private int min;
        
    private int sec;

        
    public LrcTimeFormat(String str) {
            
    this.str = str;
            hour 
    = Integer.parseInt(str.substring(13));// subString從第一個(gè)位置算,第二個(gè)位置不算
            min = Integer.parseInt(str.substring(46));// subString從第一個(gè)位置算,第二個(gè)位置不算
            sec = Integer.parseInt(str.substring(79));// subString從第一個(gè)位置算,第二個(gè)位置不算

        }


        @Override
        
    public int compareTo(LrcTimeFormat ltf) {

            
    if (this.hour > ltf.hour) {
                
    return 1;
            }
     else if (this.hour == ltf.hour) {
                
    if (this.min > ltf.min) {
                    
    return 1;
                }
     else if (this.min == ltf.min) {
                    
    if (this.sec > ltf.sec) {
                        
    return 1;
                    }
     else if (this.sec == this.sec) {
                        
    return 0;
                    }
     else {
                        
    return -1;
                    }

                }
     else {
                    
    return -1;
                }

            }
     else {
                
    return -1;
            }


        }


        @Override
        
    public String toString() {
            
    return str;
        }


    }


    主類實(shí)現(xiàn):
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Iterator;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;

    public class SortLrc {
        
    private File lrcFile = null;
        
    private String lrcDir = "";

        
    private JFileChooser dirChoose = new JFileChooser();
        
    private JFileChooser fileChoose = new JFileChooser();

        
    private JFileChooser chooser = new JFileChooser();
        
    private JButton saveButton = new JButton("保存路徑");
        
    private JButton selectButton = new JButton("選擇lrc文件");
        
    private JLabel saveLable = new JLabel("d:");
        
    private JLabel selectLable = new JLabel("d:");
        
    private JPanel panelButton = new JPanel();
        
    private JPanel panelLabel = new JPanel();
        
    private JPanel panelSort = new JPanel();
        
    private JButton sortButton = new JButton("排序歌詞");

        
    public SortLrc() {
            JFrame frame 
    = new JFrame("歌詞文件整理");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    // 選擇目錄,選擇文件的話注釋掉這行。

            dirChoose.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            fileChoose.setFileSelectionMode(JFileChooser.FILES_ONLY);

            saveButton.addActionListener(
    new ActionListener() {
                
    public void actionPerformed(ActionEvent e) {
                    
    int retValue = dirChoose.showSaveDialog(saveButton);
                    
    if (retValue == JFileChooser.APPROVE_OPTION) {
                        lrcDir 
    = dirChoose.getSelectedFile().toString();
                        saveLable.setText(dirChoose.getSelectedFile().toString());
                    }
                }
            });

            selectButton.addActionListener(
    new ActionListener() {
                
    public void actionPerformed(ActionEvent e) {
                    
    int retValue = fileChoose.showSaveDialog(selectButton);
                    
    if (retValue == JFileChooser.APPROVE_OPTION) {

                        lrcFile 
    = fileChoose.getSelectedFile();
                        selectLable
                                .setText(fileChoose.getSelectedFile().toString());
                    }
                }
            });

            sortButton.addActionListener(
    new ActionListener() {

                @Override
                
    public void actionPerformed(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(
    new GridLayout(222020));
            panelButton.setLayout(
    new GridLayout(222020));

            Container pane 
    = frame.getContentPane();
            pane.setLayout(
    new BorderLayout());
            pane.add(panelButton, BorderLayout.WEST);
            pane.add(panelLabel, BorderLayout.CENTER);
            pane.add(panelSort, BorderLayout.SOUTH);

            frame.setPreferredSize(
    new Dimension(400300));
            frame.pack();
            frame.setLocation(
    400200);
            frame.setVisible(
    true);
        }

        
    private void sortLrc() throws IOException {
            ArrayList
    <LrcTimeFormat> sortList = new ArrayList<LrcTimeFormat>();
            FileReader fr 
    = new FileReader(lrcFile);
            BufferedReader br 
    = new BufferedReader(fr);
            StringBuilder sb 
    = new StringBuilder();

            String str 
    = "";
            
    while ((str = br.readLine()) != null) {
                
    if (!isTimeLine(str)) {
                    sb.append(str 
    + "\n");
                } 
    else {
                    speLine(str, sortList);
                }

            }

            Collections.sort(sortList);

            
    for (Iterator<LrcTimeFormat> iterator = sortList.iterator(); iterator
                    .hasNext();) {
                LrcTimeFormat lrcTimeFormat 
    = (LrcTimeFormat) iterator.next();
                sb.append(lrcTimeFormat 
    + "\n");
            }
            File sortFile 
    =new File(lrcDir +"\\"+ lrcFile.getName());
            System.out.println(sortFile.getAbsolutePath());
            FileWriter fw 
    = new FileWriter(sortFile);

            fw.write(sb.toString());

            br.close();
            fr.close();
            fw.close();

        }

        
    private static Boolean isTimeLine(String str) {
            String timeRege 
    = ".*\\[[\\d]{2}\\:[\\d]{2}\\.[\\d]{2}\\].*";
            
    return str.matches(timeRege);
        }

        
    private static void speLine(String str, ArrayList<LrcTimeFormat> list) {
            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(new LrcTimeFormat(lineUnit));
            }
        }

        
    public static void main(String[] args) {
            
    new SortLrc();

        }

    }

    資源:
    排序前l(fā)rc:
    [00:00.00]光輝歲月
    [
    00:09.00]詞 \ 周治平.何啟弘.  曲 \ 黃家駒.   主唱 \ 黃家駒.
    [
    00:18.00]
    [
    00:28.00]一生要走多遠(yuǎn)的路程
    [
    00:32.00]經(jīng)過多少年
    [
    00:36.00]才能走到終點(diǎn)
    [
    00:41.00]夢(mèng)想需要多久的時(shí)間
    [
    00:45.00]多少血和淚
    [
    00:49.00]才能慢慢實(shí)現(xiàn)
    [
    02:09.00][00:54.00]天地間任我展翅高飛
    [
    02:15.00][01:00.00]誰說那是天真的預(yù)言
    [
    03:59.00][03:23.00][02:22.00][01:07.00]風(fēng)中揮舞狂亂的雙手
    [
    04:03.00][03:27.00][02:25.00][01:11.00]寫下燦爛的詩篇
    [
    04:06.00][03:30.00][02:29.00][01:14.00]不管有多么疲倦
    [
    04:12.00][03:36.00][02:35.00][01:20.00]潮來潮往世界多變遷
    [
    04:16.00][03:40.00][02:38.00][01:23.00]迎接光輝歲月
    [
    04:19.00][03:43.00][02:41.00][01:27.00]為它一生奉獻(xiàn)
    [
    01:42.00]一生要走多遠(yuǎn)的路程
    [
    01:47.00]經(jīng)過多少年
    [
    01:50.00]才能走到終點(diǎn)
    [
    01:55.00]孤獨(dú)的生活很需要時(shí)間
    [
    02:00.00]只要肯期待
    [
    02:03.00]希望不會(huì)幻滅
    [
    04:37.00]
    [
    04:45.00]
    [
    04:46.00]本歌詞由網(wǎng)友秋風(fēng)提供


    排序后要求lrc:

    [ti:恰似你的溫柔]
    [ar:蔡琴]
    [al:蔡琴——暢銷金曲專輯第三集]
    [by:炫網(wǎng)資訊 Liuxuan.com]
    [
    00:00.00]★杰盛唱片★ ★蔡琴——暢銷金曲專輯★第三集★
    [
    00:06.00]★蔡琴——暢銷金曲★  ●恰似你的溫柔●
    [
    00:12.00]詞曲:梁弘志
    [
    00:24.27]某年某月的某一天
    [
    00:30.38]就像一張破碎的臉
    [
    00:36.53]難以開口道再見
    [
    00:43.16]就讓一切走遠(yuǎn)
    [
    00:49.49]這不是件容易的事
    [
    00:55.46]我們卻都沒有哭泣
    [
    01:00.95]讓它淡淡的來
    [
    01:06.89]讓它好好的去
    [
    01:11.77]到如今年復(fù)一年
    [
    01:15.41]我不能停止懷念
    [
    01:18.94]懷念你懷念從前
    [
    01:23.79]但愿那海風(fēng)再起
    [
    01:27.59]只為那浪花的手
    [
    01:31.28]恰似你的溫柔
    [
    01:36.92]music ★蔡琴——暢銷金曲★  ●恰似你的溫柔●
    [
    01:56.00]詞曲:梁弘志
    [
    01:59.17]某年某月的某一天
    [
    02:05.09]就像一張破碎的臉
    [
    02:10.49]難以開口道再見
    [
    02:16.90]就讓一切走遠(yuǎn)
    [
    02:23.26]這不是件容易的事
    [
    02:29.25]我們卻都沒有哭泣
    [
    02:34.94]讓它淡淡的來
    [
    02:40.47]讓它好好的去
    [
    02:45.29]到如今年復(fù)一年
    [
    02:49.10]我不能停止懷念
    [
    02:52.48]懷念你懷念從前
    [
    02:57.28]但愿那海風(fēng)再起
    [
    03:00.97]只為那浪花的手
    [
    03:04.74]恰似你的溫柔
    [
    03:12.49]music ★蔡琴——暢銷金曲★  ●恰似你的溫柔●
    [
    03:19.00]詞曲:梁弘志
    [
    03:21.17]到如今年復(fù)一年
    [
    03:25.00]我不能停止懷念
    [
    03:28.39]懷念你懷念從前
    [
    03:33.22]但愿那海風(fēng)再起
    [
    03:36.91]只為那浪花的手
    [
    03:40.66]恰似你的溫柔
    [
    03:56.48]○The End○




    復(fù)習(xí)了一遍java文件操作,Comparable接口等實(shí)現(xiàn)。不用查api之前就知道java會(huì)為我們提供哪些接口。
    實(shí)現(xiàn)效果自認(rèn)為還行。也只能這樣了,因?yàn)榘l(fā)給對(duì)方過后,他就不理人了。留了句:是金子,就會(huì)發(fā)光的。
    給了我莫大的安慰。
    posted on 2010-11-13 07:43 wangflood 閱讀(176) 評(píng)論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 免费国产怡红院在线观看| 国产一级一毛免费黄片| 亚洲综合校园春色| 亚洲成人高清在线观看| 亚洲高清在线mv| 亚洲高清中文字幕| 亚洲经典在线中文字幕| 91亚洲性爱在线视频| 亚洲一区中文字幕在线观看| 亚洲免费黄色网址| 亚洲视频无码高清在线| 亚洲aⅴ无码专区在线观看春色| 色婷婷亚洲一区二区三区| 老妇激情毛片免费| 精品多毛少妇人妻AV免费久久| 精品国产免费人成网站| a毛片视频免费观看影院| **毛片免费观看久久精品| 青青在线久青草免费观看| 毛片免费观看的视频在线| 青青草国产免费久久久91| 国产成人3p视频免费观看| 亚洲色欲久久久久综合网| 精品亚洲综合在线第一区| 亚洲国产第一页www| 亚洲剧情在线观看| 美女尿口扒开图片免费| 91福利免费网站在线观看| 中文字幕在线观看免费视频| 一二三四免费观看在线视频中文版| 午夜神器成在线人成在线人免费| 免费jjzz在在线播放国产| 亚洲精品午夜无码专区| 亚洲综合久久久久久中文字幕| 亚洲欧洲专线一区| 中文字幕在线观看免费| 精品无码免费专区毛片| 国产一区二区三区在线免费观看| 亚洲午夜久久久久妓女影院 | 日本高清色本免费现在观看| 亚洲国产一成久久精品国产成人综合|