推荐些好的书籍和网站给你:
书籍
Java编程思想
Effective Java
Java并发编程实战
Head First设计模式
大话设计模式
敏捷软件开发:原则、模式与实践
轻量级JavaEE整合开发
深入理解Java虚拟机:JVM高级特性与最佳实践
鸟哥的Linux私房菜 基础学习篇
鸟哥的Linux私房菜服务器篇
Maven权威指南
互联网思维 独孤九剑
//GoodWeb sites
论坛类
www.csdn.net
www.iteye.com
www.cnblogs.com
www.oschina.net
www.infoq.com/cn
www.ibm.com/developerworks/cn
www.stakoverflow.com(最大优点:业界很多问题解决的提出与解决)
开源社区
http://code.taobao.org/opensources/(阿里开原社区)
http://code.tencent.com/(腾讯开源社区)
https://github.com/
https://code.google.com/
官网类
www.oracle.com
www.redhat.com
www.apache.org
www.springsource.com
Jar包库
http://sourceforge.net/(开源库)
http://mvnrepository.com/(maven库)
http://www.java2s.com/Code/Jar/CatalogJar.htm
http://www.findjar.com/index.x
【实例描述】IP地址是网络上每台计算机的标识,在浏览器中输入的网址也是要经过DNS服务器转换为IP地址才能找到服务器的,在很多网络程序中要求输入服务器IP地址或者对方连接的IP地址,IP地址的错误输入将使程序无法运行。
本实例将实现对IP地址的验证功能,实例的运行效果如图4.14所示。
【实现过程】(1)在Eclipse中新建项目CheckIP,并在其中创建一个CheckIP.java文件。
在该类的主方法中创建标准输入流的扫描器对象,接收用户输入的IP地址。
核心代码如下所示:protectedvoiddo_button_actionPerformed(ActionEvente){Stringtext=ipField.getText()//获取用户输入Stringinfo=matches(text)//对输入文本进行IP验证showMessageDialog(null,info)//用对话框输出验证结果}(2)编写IP地址的mathches()方法,该方法利用正则表达式对输入的字符串进行验证,并返回验证结果,关键代码如下所示。
publicStringmatches(Stringtext){if(text!=null&&!text.isEmpty()){//定义正则表达式Stringregex="^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."+"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."+"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."+"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$"//判断IP地址是否与正则表达式匹配if(text.matches(regex)){//返回判断信息returntext+"\n是一个合法的IP地址!"}else{//返回判断信息returntext+"\n不是一个合法的IP地址!"}}//返回判断信息return"请输入要验证的IP地址!"}【代码解析】本实例的关键点在于IP地址格式与数字范围的验证,用户在输入IP地址时,程序可以获取的只有字符串类型,所以本实例利用字符串的灵活性和正则表达式搭配进行IP地址格式与范围的验证。
该方法是String字符串类的方法,用于判断字符串与制定的正则表达式是否匹配。
其声明语法如下:publicbooleanmathches(Stringregex)Java程序设计经典300例XXXVIII【知识扩展】在正则表达式中,“.”代表任何一个字符,因此在正则表达式中如果想使用普通意义的点字符“.”,必须使用转义字符“\”。
300行能干啥啊,你还不如自己做做练习题。
package suoha
import java.util.ArrayListimport java.util.Random
public class MainFunction {
private ArrayList<MyCard>cards = new ArrayList<MyCard>()
private int[] cardNumArr = new int[52]
private int[] mycards = new int[5]
private int[] p1cards = new int[5]
public static void main(String[] args) {
MainFunction mainfunc = new MainFunction()
mainfunc.makeCards()
mainfunc.cardNumArr = mainfunc.shuffleCards(mainfunc.cardNumArr)
mainfunc.catchCards()
mainfunc.showAllCardsOfHand()
//mainfunc.printNums()
}
/**
* 洗牌
* @param cardNums
* @return
*/
private int[] shuffleCards(int[] cardNums){
int size = cardNums.length
int[] returnNums = new int[size]
//System.out.println(cardNums[0]+"=========================")
Random rand = new Random()
for(int i=size-1i>0i--){
int nextInt = rand.nextInt(i)
returnNums[size-1-i] = cardNums[nextInt]
cardNums[nextInt] = cardNums[i]
cardNums[i] = returnNums[size-1-i]
//System.out.println("suijishu:"+nextInt+"||zhi:"+returnNums[size-1-i])
}
returnNums[size-1] = cardNums[0]
return returnNums
}
/**
* 抓牌
*/
private void catchCards(){
for(int i=0i<5i++){
mycards[i] = cardNumArr[2*i]
p1cards[i] = cardNumArr[2*i+1]
}
}
private void showAllCardsOfHand(){
System.out.print("你手中的牌是:||")
for(int i=0i<5i++){
MyCard myCard = cards.get(mycards[i]-1)
System.out.print(myCard.toString()+"||")
}
System.out.println()
System.out.print("对家手中的牌是:||")
for(int i=0i<5i++){
MyCard myCard = cards.get(p1cards[i]-1)
System.out.print(myCard.toString()+"||")
}
}
/**
* 显示牌的顺序
*/
private void printNums(){
for(int i=0i<cardNumArr.lengthi++){
System.out.print(cardNumArr[i]+",")
}
}
/**
* 制作卡片
*/
private void makeCards(){
for(int i=1i<=13i++){
for(int j=1j<=4j++){
//System.out.println((i-1)*4+j)
MyCard card = new MyCard((i-1)*4+j, j, i)
cardNumArr[(i-1)*4+j-1] = (i-1)*4+j
cards.add(card)
}
// MyCard card1 = new MyCard((i-1)*4+1, 1, i)
// MyCard card2 = new MyCard((i-1)*4+2, 2, i)
// MyCard card3 = new MyCard((i-1)*4+3, 3, i)
// MyCard card4 = new MyCard((i-1)*4+4, 4, i)
// cards.add(card1)
// cards.add(card2)
// cards.add(card3)
// cards.add(card4)
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)