简单有趣⼩代码⽂章⽬录
1.斐波那契数列(兔⼦数列)
public class Test {
public static void main(String[] args){
Test.print(500);
}
/**
* 打印兔⼦数列
* @param max 该数列不超过max值
*/
public static void print(int max){
/
/ num为输出的数列
int num =1;
int i =0;
while(num<=max){
System.out.print(num+" ");
//定义临时变量存储num值
int temp = num;
num += i;
i = temp;
}
}
}
执⾏结果:
2.字符串转⼤写
public class Test {
public static void main(String[] args){
String str ="hello World123";
System.out.println(toUpperCase(str));
}
/**
* 将字符串转为全部⼤写
* @param str ⽬标字符串
* @return 转⼤写的结果
*/
public static String toUpperCase(String str){
// 将字符串转为字符数组
char[] cs = CharArray();
for(int i=0; i<cs.length; i++){
// 将⼩写字符转为⼤写字符
if(cs[i]>='a'&& cs[i]<='z'){
cs[i]-=(char)32;// ⼤⼩写之间差32
}
}
return new String(cs);
}
}
执⾏结果:
HELLO WORLD123
3.冒泡排序
public class Test {
public static void main(String[] args){
int[] arr =new int[]{185,5,78,2,0,1,5};
bubbleSort(arr);
实例化类和实例化对象for(int a : arr){
System.out.print(a+"、");
}
}
/**
* 冒泡排序
* 原理:⽐较相邻的两个数,较⼤的放在右边(换位置)
* 即每⼀次外层循环后都将最⼤的数放在右边
* @param arr
*/
public static void bubbleSort(int[] arr){
/
/ 外层循环控制⽐较的次数,假设8个数只需要⽐较7轮就⾏
for(int i=0; i<arr.length-1; i++){
// ⽐较相邻的两个数,把⼤⼀点的数放在后⾯
// -i:每⼀轮⽐较后最⼤的都放在后⾯可以不必⽐较已经排好了的
// -1:最后⼀个数⽆法与它的后⼀个数进⾏⽐较
for(int j=0; j<arr.length-i-1; j++){
if(arr[j]> arr[j+1]){
int temp = arr[j];
arr[j]= arr[j+1];
arr[j+1]= temp;
}
}
}
}
}
执⾏结果:
0、1、2、5、5、78、185、
4.数组转置
public class Test {
public static void main(String[] args){
//⼀维数组测试
int[] array =new int[]{1,2,3,4,5,6};
reverse(array);
for(int num : array){
System.out.print(num+"、");
}
System.out.println();
System.out.println("-------------------");
// ⼆维数组测试
int[][] array2 =new int[][]{
{1,2,3},{4,5,6},{7,8,9},
};
reverse(array2);
for(int[] arr : array2){
for(int num : arr){
System.out.print(num +" ");
}
System.out.println();
}
}
/**
* ⼀维数组的转置
* @param array
*/
public static void reverse(int[] array){
int center = array.length /2;// 计算转置次数
int head =0;// 头部处理脚标
int tail = array.length -1;// 尾部处理脚标
for(int x=0; x<center; x++){
// 进⾏收尾之间的交换
int temp = array[head];
array[head++]= array[tail];
array[tail--]= temp;
}
}
/
**
* ⼆维数组的转置
* @param array
*/
public static void reverse(int[][] array){
for(int x=0; x<array.length; x++){
for(int y=0; y<x; y++){
if(x!=y){//中轴线
int temp = array[x][y];
array[x][y]= array[y][x];
array[y][x]= temp;
}
}
}
}
}
执⾏结果:
5.⼆分查
;
public class Test {
public static void main(String[] args){
int[] data =new int[]{1,2,3,4,5,7,8,9,45,56,78,94,100}; System.out.println(binarySearch(data,78));// 存在
System.out.println(binarySearch(data,20));// 不存在
}
/**
* ⼆分查
* @param data 数组
* @param num 要查的数据
* @return 如果到返回索引,没有则返回-1
*/
public static int binarySearch(int[] data,int num){
int start =0;// 开始索引
int end = data.length -1;// 结束索引
while(start <= end){
int mid =(start + end)>>>1;// mid为中间索引
if(num > data[mid]){
start = mid +1;
}else if(num < data[mid]){
end = mid -1;
}else{// 到返回索引
return mid;
}
}
return-1;
}
}
执⾏结果:
10
-1
5.File⽂件重命名
;
import java.io.File;
import java.io.IOException;
SimpleDateFormat;
import java.util.Date;
class FileRenameUtil{
private int maxLength;// ⽂件的最⼤长度
private String maxFileNmae;// 最长⽂件名
public FileRenameUtil(File file){
init(file);
rename(file);
}
/**
* 初始化⽅法,查最长⽂件名和⽂件的最⼤长度
* @param file
*/
public void init(File file){
if(file.isDirectory()){// 如果是⽬录
File[] files = file.listFiles();
if(files != null){
for(File f : files){
init(f);
}
}
}
}else{
// 匹配需要进⾏重命名的⽂件
Name().matches("log\\-\\d{17}\\-\\d+.log")){
Name().length()> maxLength){
maxLength =(Name().Name().lastIndexOf("-")+1, Name().lastIndexOf("."))).length(); maxFileNmae = Name();
}
}
}
}
/**
* ⽂件重命名操作
* @param file
*/
public void rename(File file){
if(file.isDirectory()){// 如果是⽬录
File[] files = file.listFiles();
if(files != null){
for(File f : files){
rename(f);
}
}
}else{
/
/ 匹配需要进⾏重命名的⽂件
Name().matches("log\\-\\d{17}\\-\\d+.log")){
String str = Name();
String startSign = AbsolutePath().substring(AbsolutePath().lastIndexOf("-")+1);// 前缀
String endSign = str.substring(str.lastIndexOf("."));// 后缀
String oldName = str.substring(str.lastIndexOf("-")+1, str.lastIndexOf("."));// 要更改部分
StringBuilder sb =new StringBuilder(oldName);
// ⽂件名称长度不够时,补0操作
while(sb.length()< maxLength){
sb.insert(0,0);
}
File newFile =new File(startSign + sb.toString()+ endSign);// 重命名后的名称
}
}
}
}
public class Test {
public static void main(String[] args){
File dir =new File("D:"+ File.separator +"haha");
//createFile(dir);
new FileRenameUtil(dir);
}
/**
* 创建要重命名的⽂件
* @param dir ⽗⽬录
*/
public static void createFile(File dir){
for(int i =0; i <100; i ++){
File createFile =new File(dir,"log-"+returnTimestamp()+"-"+ i +".log");
try{
}catch(IOException e){
e.printStackTrace();
}
}
}
/**
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论