主要是利用baidu搜索的到的结果,然后从页面中抽取歌曲的链接和与歌曲相关的其他信息,
然后利用这些链接进行下载.
感觉实用性还挺强的,虽然下载速度和迅雷没法比,貌似比直接下载.
Matcher类:
使用Matcher类,最重要的一个概念必须清楚:组(Group),在正则表达式中
()定义了一个组,由于一个正则表达式可以包含很多的组,所以下面先说说怎么划分组的,
以及这些组和组的下标怎么对应的.
下面我们看看一个小例子,来说明这个问题
引用\w(\d\d)(\w+)
这个正则表达式有三个组:
整个\w(\d\d)(\w+) 是第0组 group(0)
(\d\d)是第1组 group(1)
(\w+)是第2组 group(2)
我们看看和正则表达式匹配的一个字符串x99SuperJava,
group(0)永远都是匹配整个表达式的字符串的那部分x99SuperJava ...
今天帮同学调试程序,发现许多同学初写GUI程序共同的毛病,不能够构建反映灵敏的界面,
并由此导致一些问题的出现。或许今天遇到的问题,再加上Java GUI在循环中调用repaint的问题分析能够对初学Java GUI编程同学有所帮助。
我同学写的程序,把有问题那部分抽离出来,表述为下面一段代码:
package edu.jlu.fuliang;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax. ...
今天一同学做东西要用这个东东,就帮他写了一个,先转化成后缀表达式,然后再
计算.当然也可以直接计算中缀表达式,考虑到要多位数,就没那么做.
支持多位数的带括号的整数的加减乘除.
package edu.jlu.fuliang;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class Eval {
public int eval(String exp){
List<String> list = infixExpToPostExp(e ...
正则表达式在处理文本方面用处非常大,最早像在Perl和awk语言中,提供了这种机制,Java在Java 2中也增加了正则表达式这个包java.util.regex。这个包为用户使用正则表达式,提供了易用而全面的支持。我的研究方向是web挖掘。从网页中提取内容,处理文本,当然需要正则表达式这个强大的工具了。
一、首先我们看一下怎么使用正则表达式的一个例子:
A Matcher examines the results of applying a pattern.
我们希望从这句话中找到所有开头为a的单词。
当然这只是一个简单的例子,你可以使用String提供的split方法,得到单词数组,然后
...
本来打算昨天总结这部分的,一方面昨天上了一天课,另一方面,这部分想理清全部的思路
并不那么容易.看《Java nio》那本书,差点没看崩溃,洋洋洒洒写了近三百大页介绍java nio,写的太散太细,反而觉得很乱,理不清思路了。那本书用起来作为参考手册还行,想很快上手这本书还真不适合。
今天打算总结和Socket异步通信相关的内容。
传统的Socket是阻塞,像ServerSocket在调用accept方法后便处于阻塞状态等待Client端的连接,所以一般会在Server端使用许多线程,对每一个Socket连接分配一个线程。充分利用并发特性来提高性能。
但这样会带来许多问题:
1、Server端 ...
一、读文件:
前面我们介绍了通过获得FileChannel来写文件,现在我们再看看读操作。
其实读操作和写操作基本是对应的。
首先与写操作类似从文件中获得流,读操作要获得输入流FileInputStream
,再从这个流中得到FileChannel对象,然后进行读操作。
文件通道的读操作有三个read()方法:
int read(ByteBuffer buf);
从文件中读取buf.remaining()[即limit-position]个字节到缓冲区buf,从缓冲区的当前位置开始存取
int read(ByteBuffer[] buffers);
从文件中读到多个缓冲区中
int ...
一、各种缓冲区:
所有的缓冲区都继承了Buffer,Buffer类定义了所有缓冲区共有的基本特征,缓冲区存储了制定类型的元素序列有:ByteBuffer、CharBuffer、ShortBuffer、IntBuffer、LongBuffer、FloatBuffer、DoubleBuffer。
我们需要知道这些基本类型占用存储空间与Byte的对应关系:
char 2 bytes,int 4 bytes,double 8 bytes
二、我们看看Buffer三个重要的概念以及他们之间的关系:
capacity 所能存方特定类型值得最大数量
limit 第一个不能读取或写入的索引位置
positio ...
jdk1.4提供了java.nio包,为从根本上改善I/O的性能提供了可能,但是nio要比以前的I/O要复杂,提供了更底层的操作和更细的api。学起来并不是那么快就上手,有专门一本书
介绍nio的。我希望通过总结更好的梳理整个nio框架各个类之间的关系,从而能够灵活的使用nio包。
nio通常需要涉及到三个对象:
1、数据源:从文件中获得的FileInputStream/FileOutputStream、从socket中获得的输入输出流等
2、缓冲区对象(buffer):nio定义了一系列buffer对象,最基本的是ByteBuffer,其他还有各种基本数据类型除了boolean类型外,所对应 ...
最早接触ThreadLocal这个东东,还是在学Hibernate的时候,当时看ThreadLocal没明白是干什么的,后来在网上查才明白ThreadLocal的用途,ThreadLocal其实蛮有用的,总结一下具体的原理及用法。
虽然支持线程局部变量早就是许多线程工具,但 Java Threads API 的最初设计却没有这项有用的功能。而且,最初的实现也相当低效。ThreadLocal 极少受到关注,但对简化线程安全并发程序的开发来说,它却是很方便的。
ThreadLocal要解决的是什么问题呢?
一个本来应该线程安全的类,里面有一个线程不安全的变量,这样这个类也就线程不安全了, ...
今天Leen同学问我一个看似很简单的问题,父类的构造函数中调用了虚函数的话.那么在实例化子类对象时首先应该调用父类的构造方法,这时父类的构造函数中调用的虚函数应该是哪个?
其实这个问题,在语言设计的时候就是个两难的问题。
一、如果调用的是父类的函数的话,这个有点违反虚函数的定义。
二、如果调用的是子类的函数的话,这可能产生问题的:因为在构造子类对象的时候,首先调用父类的构造函数,而这时候如果去调用子类的函数,由于子类还没有构造完成,子类的成员尚未初始化,这么做显然是不安全的。
c++选择了第一种,而Java选择了第二种。
c++类的设计相对比较简陋,通过虚函数表来实现,缺少类的元信息。
而Ja ...
在Java中,循环调用repaint()来显示动画效果,是个很自然的方法,
然而这是不可行的。其实Java有一个GUI (AWT) Thread来负责GUI
事件的分发,这个线程接受输入事件,放入事件队列,从该队列
中拿出一个事件分发出去。而这个线程事实上与GUI component
线程[一般是你应用程序的主线程]是绑定的。也就是说如果当前
的线程休眠,事件分发的线程同样会休眠。试想如果如果不这么
做,事件被分发,而当前线程正在休眠,事件就得不到响应,那么
这个事件就会丢失。
下面看看昨天遇到的一个问题:
昨天gyk同学问我一个动画不能显示,而是立即出来最终的画面,
他就使用循环调用repa ...
昨天看了几年前写贪吃蛇程序,代码实在不敢恭维,怎么样容易就怎么写了,
各个类的职责完全不清.当时,作为第一个写的比较大的程序,可以说是以后我大规模程
序设计的一个开端吧,这么有意义的一个程序,不能就这么任他烂下去了.况且这个小游戏难度比较小,对刚从课堂的程序设计到实际开发的来说是一个很好的例子.花了一个晚上重写了一个,注释今天上午也加上了.希望对想开始写比较大的程序的同学们有所帮助.
注:最近感冒了,没有怎么测试,自己玩了一把,看到正常,没怎么找bug...
dom对xml的操作:
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.xml.sax.*;
import java.io.*;
import org.w3c.dom.*;
public class control implements java.io.Serializable {
privat ...
用java写的基于Socket的简单即时通讯程序,用户可以注册并登录,也可以作为游客身份使用.
/**//*
*服务端
*/
package edu.jlu.fuliang;
import java.io.*;
import java.net.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing ...
//************************************************************
//游戏:每次产生5个食物,通过上下左右键控制蛇的运动方向
//*************************************************************
//**********************************************
//游戏的类,控制其他各个类和游戏的进度
//**********************************************
import j ...
/*
*虚拟的单个方格类,控制方格的颜色
*/
class RussiaBox implements Cloneable
{
private boolean isColor;
public RussiaBox(boolean isColor)
{
this.isColor = isColor;
}
/*
*设置颜色
*/
public void setColor(boolean isColor)
{
this.isColor=isColor;
}
/*
*返回颜色
*/
public boolean ...
//通过移动坐标原点来实现正弦曲线,可以减少数组元素的移动
//但要开辟2*NUM空间的数组。
#include <windows.h>
#include <math.h>
#define ID_TIMER 1
#define NUM 1000
#define STEP 10//每次移动的步长
#define TWOPI (2 * 3.14159)
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain ( HINSTANCE hInstance, H ...
在java和C++中都采用了引用这个概念,但是二者的行为并不一样。java的引用其实更象c++中的指针,而非c++中的引用,的确c++的指针给我们带来强大威力的同时,也给我们带来了危险,大多的攻击也都是利用指针让系统崩溃。在许多书上都没有见到关于java中reference行为的更详细的探讨,本文便从与c++的的区别谈起:
一.先看java中的引用:
class Person
{
private String name;
public Person(String name)
{
this.name=name;
}
public String getName()
...
以前用java写的计算器程序:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame
{
private Container container;
private GridBagLayout layout;
private GridBagConstraints constraints;
private JTextField displayField;//计算结果显示区
private String la ...
//windows API写过滚动正弦曲线,感觉用java做起来代码会比较小,试了一下,但感觉
//面不如windows好.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
public class SinWave extends JFrame{
private static final int NUM = 1000;
private static final double TWOPI = 2 * 3.14;
priva ...
- 浏览: 50783 次
- 性别:

- 来自: 长春

- 详细资料
搜索本博客
我的相册
RSS Reader1
共 6 张
共 6 张
链接
最新评论
-
写了一个支持搜索并下载歌 ...
引用 为什么要配置成legal_music_link=http://202.10 ...
-- by fuliang -
使用Struts2+Hibernate+Sp ...
很好很强大
-- by andy54321 -
Java Persistence with Hi ...
昨天买的, 不错
-- by lklkdawei -
使用Struts2+Spring+Hiber ...
不过整个工程都没有一条注释啊。。。 这个比较郁闷,万一以后你写了个框架,那下面 ...
-- by yyphzc -
使用Struts2+Spring+Hiber ...
总体感觉还行,不过部分代码需要优化为好 1.DAO既然使用泛型,那就干脆点。想想 ...
-- by yeshucheng






评论排行榜