键盘键入:
Scanner s = new Scanner(System.in);
int[] a = new int[10];
System.out.println("请输入10个整数:");
for(int i=0; i<10; i++) {
a[i] = s.nextInt();
}
for(int i=0; i<10; i++) {
for(int j=i+1; j<10; j++) {
if(a[i] > a[j]) {
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
冒泡排序:
一、基本思路:
冒泡排序是一种简单的交换类排序。其基本思路是,从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移。每经过一趟排序后,关键字值最大的元素将移到末尾,此时记下该元素的位置,下一趟排序只需要比较到此位置为止,直到所有元素都已有序排列。
一般地,对n个元素进行冒泡排序,总共需要进行n-1趟。第1趟需要比较n-1次,第2趟需要比较n-2次,......第i趟需要比较n-i次。
二、算法实现
public class BubbleSort{
public static void main(String args[]){
int[] values={3,1,6,2,9,0,7,4,5};
sort(values);
for(int i=0;i<values.length;i++){//排序后打印数组中的元素
System.out.println("Index: "+i+" value: "+values[i]);
}
}
public static void sort(int[] values){
int temp;
for(int i=0;i<values.length;i++){//趟数
for(int j=0;j<values.length-i-1;j++){//比较次数
if(values[j]>values[j+1]){
temp=values[j];
values[j]=values[j+1];
values[j+1]=temp;
}
}
}
}
}
正则表达式,匹配问题
写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任意数字,最后5位为任意相同的数字。
例如:18601088888、13912366666
代码:
import java.util.Scanner;
class Test91{
public static void main(String [] args)
{
String regex="1[3458]\\d{4}(\\d)\\1{4}";
Scanner sc=new Scanner(System.in);//接受键盘输入的电话号码。
System.out.print("输入要检验的手机号码:");
String arr =sc.nextLine();
boolean b = arr.matches(regex);
if(b==true){
System.out.println("你输入的是符合要求的电话号码");
}else{
}
System.out.println("你输入的是不符合要求的电话号码");
}
}
老鼠走迷宫设计
*
* 课题:老鼠走迷宫设计
* 描述:老鼠走迷宫是循环求解的基本类型,在二维数组中用2表示迷宫的墙壁
* 使用1表示老鼠的行走路径,老鼠从迷宫的入口到出口的路径不可能就条
* 要求:求出入口到出口的距离
*
* */
public class Mouse {
private int startl,startJ; //入口
private int endl,endJ; //出口
private boolean success = false; //判断
// public Mouse() {
// // TODO 自动生成的构造函数存根
// }
public static void main(String[] args){
int[][] maze ={
{2,2,2,2,2,2,2},
{2,0,2,2,0,0,2},
{2,0,2,0,2,0,2},
{2,0,0,0,0,2,2},
{2,2,0,2,0,2,2},
{2,0,0,2,0,0,2},
{2,2,2,2,2,2,2},};
System.out.print("显示迷宫 :\n");
for (int i = 0;i < maze.length;i++){
for (int j = 0;j < maze[i].length;j++)
{
if(maze[i][j] == 2)
{
System.out.print("2");
}
else
{
System.out.print("0");
}
}
System.out.println();
}
Mouse mouse = new Mouse();
mouse.setStart(1, 1);
mouse.setEnd(5, 5);
if(!mouse.go(maze)) //判断出口
{
System.out.println("没有找到出口");
}else{
System.out.println("出口找到");
for(int i = 0;i <maze.length;i++)
{
for(int j = 0;j <maze[i].length;j++)
{
if(maze[i][j] == 2)
{
System.out.print("m");
}
else if(maze[i][j] == 0)
{
System.out.print("n");
}else{
System.out.print("");
}
}
System.out.println();
}
}}
public void setStart(int i,int j){
this.startl = i;
this.startJ = j;
}
public void setEnd(int i, int j){
this.endl = i;
this.endJ = j;
}
public boolean go(int[][] maze){
return visit(maze,startl,startJ);
}
private boolean visit(int[][] maze,int i,int j){
// maze[i][j] = 0;
if(i == endl && j == endJ) success = true;
if(!success && maze[i][j+1] ==0)visit(maze, i, j+1);
if(!success && maze[i+1][j] ==0)visit(maze, i+1, j);
if(!success && maze[i][j-1] ==0)visit(maze, i, j-1);
if(!success && maze[i-1][j] ==0)visit(maze, i-1, j);
if(!success)maze[i][j] = 0;
return success;
}
}
文件夹即文件夹内容的复制
代码:
import java.io.*;
/**
* 复制文件夹或文件夹
*/
public class CopyDirectory
{
// 源文件夹
static String url1 = "e:/KDR1";
// 目标文件夹
static String url2 = "e:/newfile";
public static void main(String args[]) throws IOException
{ // 创建目标文件夹
(new File(url2)).mkdirs();
// 获取源文件夹当前下的文件或目录
File[] file = (new File(url1)).listFiles();
for (int i = 0; i < file.length; i++)
{
if (file[i].isFile())
{// 复制文件
copyFile(file[i],new File(url2+file[i].getName()));
}
if (file[i].isDirectory())
{ // 复制目录
String sourceDir=url1+File.separator+file[i].getName();
String targetDir=url2+File.separator+file[i].getName();
copyDirectiory(sourceDir, targetDir);
}
}
}
// 复制文件
public static void copyFile(File sourceFile,File targetFile) throws IOException
{ // 新建文件输入流并对它进行缓冲
FileInputStream input = new FileInputStream(sourceFile);
BufferedInputStream inBuff=new BufferedInputStream(input);
// 新建文件输出流并对它进行缓冲
FileOutputStream output = new FileOutputStream(targetFile);
BufferedOutputStream outBuff=new BufferedOutputStream(output);
// 缓冲数组
byte[] b = new byte[1024 * 5];
int len;
while ((len =inBuff.read(b)) != -1)
{
outBuff.write(b, 0, len);
}
// 刷新此缓冲的输出流
outBuff.flush();
//关闭流
inBuff.close();
outBuff.close();
output.close();
input.close();
}
// 复制文件夹
public static void copyDirectiory(String sourceDir, String targetDir) throws IOException
{// 新建目标目录
(new File(targetDir)).mkdirs();
// 获取源文件夹当前下的文件或目录
File[] file = (new File(sourceDir)).listFiles();
for (int i = 0; i < file.length; i++)
{
if (file[i].isFile())
{
// 源文件
File sourceFile=file[i];
// 目标文件
File targetFile=new File(new File(targetDir).getAbsolutePath()+File.separator+file[i].getName());
copyFile(sourceFile,targetFile);
}
if (file[i].isDirectory())
{
// 准备复制的源文件夹
String dir1=sourceDir + "/" + file[i].getName();
// 准备复制的目标文件夹
String dir2=targetDir + "/"+ file[i].getName();
copyDirectiory(dir1, dir2);
}
}
}
}
取牌问题取4张牌 什么牌 和牌的类型
public class DeckOfCards {
//取牌问题
public static void main(String[] args) {
int[] deck = new int[52];
String[] suits = {"Spades","Hearts","Diamonds","Clubs"};
String[] ranks = {"Ace","2","3",
"4","5","6",
"7","8","9","10",
"Jack","Queen","King"};
for (int i = 0; i < deck.length; i++) {
deck[i] = i;
}
for (int i = 0; i < deck.length; i++) {
int index = (int)(Math.random() * deck.length);
int temp = deck[i];
deck[i] = deck[index];
deck[index] = temp;
}
for (int i = 0; i < suits.length; i++) {
String suit = suits[deck[i] / 13];
String rank = ranks[deck[i] % 13];
System.out.println("Card number数字号:" + deck[i] + "牌号:" + rank + "类型" + suit);
}
}
}
集合iterator过滤重复项
import java.util.*;
class TreeSetTest{
public static void main(String[] args) {
TreeSet ts = new TreeSet(new StrLenComparator());
ts.add("a");
ts.add("ab");
ts.add("abc");
ts.add("bcdf");
ts.add("ab");
Iterator it = ts.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
class StrLenComparator implements Comparator {
public int compare(Object o1,Object o2) {
String s1 = (String)o1;//在此处为什么将o1强转为字符串s1?
String s2 = (String)o2;//同上所述......s2?
int num = new Integer(s1.length()).compareTo(new Integer(s2.length()));
if(num==0)
return s1.compareTo(s2);
return num;
}
}