java菜鸟学习实例(一)

前言:

因为菜鸟教程中的实例跳转,我个人觉得不是很方便,把实例放在一个页面上,方便我记录学习,所以产生此笔记,如果想看菜鸟教程的,直接点击链接就可以跳转:菜鸟教程
java菜鸟学习实例(一)
java菜鸟学习实例(二)
java菜鸟学习实例(三)
java菜鸟学习实例(四)
java菜鸟学习实例(完整版)

一.Java 字符串

1.Java 实例 – 字符串比较

public class StringCompareEmp{
    
    
   public static void main(String args[]){
    
    
      String str = "Hello World";
      String anotherString = "hello world";
      Object objStr = str;
 
      System.out.println( str.compareTo(anotherString) );
      System.out.println( str.compareToIgnoreCase(anotherString) );  //忽略大小写
      System.out.println( str.compareTo(objStr.toString()));
   }
}

2.Java 实例 - 查找字符串最后一次出现的位置

public class SearchlastString {
    
    
   public static void main(String[] args) {
    
    
      String strOrig = "Hello world ,Hello Runoob";
      int lastIndex = strOrig.lastIndexOf("Runoob");
      if(lastIndex == - 1){
    
    
         System.out.println("没有找到字符串 Runoob");
      }else{
    
    
         System.out.println("Runoob 字符串最后出现的位置: "+ lastIndex);
      }
   }
}

3.Java 实例 - 删除字符串中的一个字符

public class Main {
    
    
   public static void main(String args[]) {
    
    
      String str = "this is Java";
      System.out.println(removeCharAt(str, 3));
   }
   public static String removeCharAt(String s, int pos) {
    
    
      return s.substring(0, pos) + s.substring(pos + 1);
   }
}

4.Java 实例 - 字符串替换

public class StringReplaceEmp{
    
    
   public static void main(String args[]){
    
    
      String str="Hello World";
      System.out.println( str.replace( 'H','W' ) );
      System.out.println( str.replaceFirst("He", "Wa") );
      System.out.println( str.replaceAll("He", "Ha") );
   }
}

5.Java 实例 - 字符串反转

public class StringReverseExample{
    
    
   public static void main(String[] args){
    
    
      String string="runoob";
      String reverse = new StringBuffer(string).reverse().toString();
      System.out.println("字符串反转前:"+string);
      System.out.println("字符串反转后:"+reverse);
   }
}

6.Java 实例 - 字符串查找

public class SearchStringEmp {
    
    
   public static void main(String[] args) {
    
    
      String strOrig = "Google Runoob Taobao";
      int intIndex = strOrig.indexOf("Runoob");
      if(intIndex == - 1){
    
    
         System.out.println("没有找到字符串 Runoob");
      }else{
    
    
         System.out.println("Runoob 字符串位置 " + intIndex);
      }
   }
}

7.Java 实例 - 字符串分割

public class JavaStringSplitEmp {
    
    
   public static void main(String args[]){
    
    
      
      String str = "www-runoob-com";
      String[] temp;
      String delimeter = "-";  // 指定分割字符
      temp = str.split(delimeter); // 分割字符串
      // 普通 for 循环
      for(int i =0; i < temp.length ; i++){
    
    
         System.out.println(temp[i]);
         System.out.println("");
      }
 
      System.out.println("------java for each循环输出的方法-----");
      String str1 = "www.runoob.com";
      String[] temp1;
      String delimeter1 = "\\.";  // 指定分割字符, . 号需要转义
      temp1 = str1.split(delimeter1); // 分割字符串
      for(String x :  temp1){
    
    
         System.out.println(x);
         System.out.println("");
      }
   }
}

8.Java 实例 - 字符串分割(StringTokenizer)

import java.util.StringTokenizer;
 
public class Main {
    
    
    public static void main(String[] args) {
    
    
 
        String str = "This is String , split by StringTokenizer, created by runoob";
        StringTokenizer st = new StringTokenizer(str);
 
        System.out.println("----- 通过空格分隔 ------");
        while (st.hasMoreElements()) {
    
    
            System.out.println(st.nextElement());
        }
 
        System.out.println("----- 通过逗号分隔 ------");
        StringTokenizer st2 = new StringTokenizer(str, ",");
 
        while (st2.hasMoreElements()) {
    
    
            System.out.println(st2.nextElement());
        }
    }
}

9.Java 实例 - 字符串小写转大写

public class StringToUpperCaseEmp {
    
    
    public static void main(String[] args) {
    
    
        String str = "string runoob";
        String strUpper = str.toUpperCase();
        System.out.println("原始字符串: " + str);
        System.out.println("转换为大写: " + strUpper);
    }
}

10.Java 实例 - 测试两个字符串区域是否相等

public class StringRegionMatch{
    
    
   public static void main(String[] args){
    
    
      String first_str = "Welcome to Microsoft";
      String second_str = "I work with microsoft";
      boolean match1 = first_str.
      regionMatches(11, second_str, 12, 9);
      boolean match2 = first_str.
      regionMatches(true, 11, second_str, 12, 9); //第一个参数 true 表示忽略大小写区别
      System.out.println("区分大小写返回值:" + match1);
      System.out.println("不区分大小写返回值:" + match2);
   }
}

11.Java 实例 - 字符串性能比较测试

public class StringComparePerformance{
    
    
   public static void main(String[] args){
    
          
      long startTime = System.currentTimeMillis();
      for(int i=0;i<50000;i++){
    
    
         String s1 = "hello";
         String s2 = "hello"; 
      }
      long endTime = System.currentTimeMillis();
      System.out.println("通过 String 关键词创建字符串" 
      + " : "+ (endTime - startTime) 
      + " 毫秒" );       
      long startTime1 = System.currentTimeMillis();
      for(int i=0;i<50000;i++){
    
    
         String s3 = new String("hello");
         String s4 = new String("hello");
      }
      long endTime1 = System.currentTimeMillis();
      System.out.println("通过 String 对象创建字符串" 
      + " : " + (endTime1 - startTime1)
      + " 毫秒");
   }
}

12.Java 实例 - 字符串优化

public class StringOptimization {
    
    
    public static void main(String[] args){
    
    
        String variables[] = new String[50000];      
        for( int i=0;i <50000;i++){
    
    
            variables[i] = "s"+i;
        }
        long startTime0 = System.currentTimeMillis();
        for(int i=0;i<50000;i++){
    
    
            variables[i] = "hello";
        }
        long endTime0 = System.currentTimeMillis();
        System.out.println("直接使用字符串: "+ (endTime0 - startTime0)  + " ms" );
        long startTime1 = System.currentTimeMillis();
            for(int i=0;i<50000;i++){
    
    
            variables[i] = new String("hello");
        }
        long endTime1 = System.currentTimeMillis();
        System.out.println("使用 new 关键字:" + (endTime1 - startTime1) + " ms");
        long startTime2 = System.currentTimeMillis();
        for(int i=0;i<50000;i++){
    
    
            variables[i] = new String("hello");
            variables[i] = variables[i].intern();          
        }
        long endTime2 = System.currentTimeMillis();
        System.out.println("使用字符串对象的 intern() 方法: " 
        + (endTime2 - startTime2)
        + " ms");
    }
}

13.Java 实例 - 字符串格式化

import java.util.*;
 
public class StringFormat {
    
    
    public static void main(String[] args){
    
    
        double e = Math.E;
        System.out.format("%f%n", e);
        System.out.format(Locale.CHINA  , "%-10.4f%n%n", e);  //指定本地为中国(CHINA)
    }
}

14.Java 实例 - 连接字符串

public class StringConcatenate {
    
    
    public static void main(String[] args){
    
    
        long startTime = System.currentTimeMillis();
        for(int i=0;i<5000;i++){
    
    
            String result = "This is"
            + "testing the"
            + "difference"+ "between"
            + "String"+ "and"+ "StringBuffer";
        }
        long endTime = System.currentTimeMillis();
        System.out.println("字符串连接" 
        + " - 使用 + 操作符 : " 
        + (endTime - startTime)+ " ms");
        long startTime1 = System.currentTimeMillis();
        for(int i=0;i<5000;i++){
    
    
            StringBuffer result = new StringBuffer();
            result.append("This is");
            result.append("testing the");
            result.append("difference");
            result.append("between");
            result.append("String");
            result.append("and");
            result.append("StringBuffer");
        }
        long endTime1 = System.currentTimeMillis();
        System.out.println("字符串连接" 
        + " - 使用 StringBuffer : "
        + (endTime1 - startTime1)+ " ms");
    }
}

二.Java 数组

1.Java 实例 – 数组排序及元素查找

import java.util.Arrays;
 
public class MainClass {
    
    
    public static void main(String args[]) throws Exception {
    
    
        int array[] = {
    
     2, 5, -2, 6, -3, 8, 0, -7, -9, 4 };
        Arrays.sort(array);
        printArray("数组排序结果为", array);
        int index = Arrays.binarySearch(array, 2);
        System.out.println("元素 2  在第 " + index + " 个位置");
    }
    private static void printArray(String message, int array[]) {
    
    
        System.out.println(message
        + ": [length: " + array.length + "]");
        for (int i = 0; i < array.length; i++) {
    
    
            if(i != 0){
    
    
                System.out.print(", ");
            }
            System.out.print(array[i]);
        }
        System.out.println();
    }
}

2.Java 实例 – 数组添加元素

import java.util.Arrays;
 
public class MainClass {
    
    
   public static void main(String args[]) throws Exception {
    
    
      int array[] = {
    
     2, 5, -2, 6, -3, 8, 0, -7, -9, 4 };
      Arrays.sort(array);
      printArray("数组排序", array);
      int index = Arrays.binarySearch(array, 1);
      System.out.println("元素 1 所在位置(负数为不存在):"
      + index);  
      int newIndex = -index - 1;
      array = insertElement(array, 1, newIndex);
      printArray("数组添加元素 1", array);
   }
   private static void printArray(String message, int array[]) {
    
    
      System.out.println(message
      + ": [length: " + array.length + "]");
      for (int i = 0; i < array.length; i++) {
    
    
         if (i != 0){
    
    
            System.out.print(", ");
         }
         System.out.print(array[i]);         
      }
      System.out.println();
   }
   private static int[] insertElement(int original[],
   int element, int index) {
    
    
      int length = original.length;
      int destination[] = new int[length + 1];
      System.arraycopy(original, 0, destination, 0, index);
      destination[index] = element;
      System.arraycopy(original, index, destination, index
      + 1, length - index);
      return destination;
   }
}

3.Java 实例 – 获取数组长度

public class Main {
    
    
   public static void main(String args[]) {
    
    
      String[][] data = new String[2][5];
      System.out.println("第一维数组长度: " + data.length);
      System.out.println("第二维数组长度: " + data[0].length);
   }
}

4.Java 实例 – 数组反转

public class RunoobTest {
    
     
  
    /* 反转数组*/
    static void reverse(int a[], int n) 
    {
    
     
        int[] b = new int[n]; 
        int j = n; 
        for (int i = 0; i < n; i++) {
    
     
            b[j - 1] = a[i]; 
            j = j - 1; 
        } 
  
        /*输入反转数组*/
        System.out.println("反转后数组是: \n"); 
        for (int k = 0; k < n; k++) {
    
     
            System.out.println(b[k]); 
        } 
    } 
  
    public static void main(String[] args) 
    {
    
     
        int [] arr = {
    
    10, 20, 30, 40, 50}; 
        reverse(arr, arr.length); 
    } 
}

5.Java 实例 – 数组输出

public class Welcome {
    
    
    public static void main(String[] args){
    
    
        String[] runoobs = new String[3];
        runoobs[0] = "菜鸟教程";
        runoobs[1] = "菜鸟工具";
        runoobs[2] = "菜鸟笔记";
        for (int i = 0; i < runoobs.length; i++){
    
    
            System.out.println(runoobs[i]);
        }
    }
}

6.Java 实例 – 数组获取最大和最小值

import java.util.Arrays;
import java.util.Collections;
 
public class Main {
    
    
    public static void main(String[] args) {
    
    
        Integer[] numbers = {
    
     8, 2, 7, 1, 4, 9, 5};
        int min = (int) Collections.min(Arrays.asList(numbers));
        int max = (int) Collections.max(Arrays.asList(numbers));
        System.out.println("最小值: " + min);
        System.out.println("最大值: " + max);
    }
}

7.Java 实例 – 数组合并

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
public class Main {
    
    
    public static void main(String args[]) {
    
    
        String a[] = {
    
     "A", "E", "I" };
        String b[] = {
    
     "O", "U" };
        List list = new ArrayList(Arrays.asList(a));
        list.addAll(Arrays.asList(b));
        Object[] c = list.toArray();
        System.out.println(Arrays.toString(c));
    }
}

8.Java 实例 – 数组填充

import java.util.*;
 
public class FillTest {
    
    
    public static void main(String args[]) {
    
    
        int array[] = new int[6];
        Arrays.fill(array, 100);
        for (int i=0, n=array.length; i < n; i++) {
    
    
            System.out.println(array[i]);
        }
        System.out.println();
        Arrays.fill(array, 3, 6, 50);
        for (int i=0, n=array.length; i< n; i++) {
    
    
            System.out.println(array[i]);
        }
    }
}

9.Java 实例 – 数组扩容

public class Main {
    
    
    public static void main(String[] args) {
    
    
        String[] names = new String[] {
    
     "A", "B", "C" };
        String[] extended = new String[5];
        extended[3] = "D";
        extended[4] = "E";
        System.arraycopy(names, 0, extended, 0, names.length);
        for (String str : extended){
    
    
            System.out.println(str);
        }
    }
}

10.Java 实例 – 查找数组中的重复元素

public class MainClass {
    
    
    public static void main(String[] args) 
    {
    
    
        int[] my_array = {
    
    1, 2, 5, 5, 6, 6, 7, 2, 9, 2};
        findDupicateInArray(my_array);
 
    }
 
    public static void findDupicateInArray(int[] a) {
    
    
        int count=0;
        for(int j=0;j<a.length;j++) {
    
    
            for(int k =j+1;k<a.length;k++) {
    
    
                if(a[j]==a[k]) {
    
    
                    count++;
                }
            }
            if(count==1)
               System.out.println( "重复元素 : " +  a[j] );
            count = 0;
        }
    }
}

11.Java 实例 – 删除数组元素

import java.util.Arrays;
 
public class RunoobTest {
    
    
 
    public static void main(String[] args) {
    
    
        int[] oldarray = new int[] {
    
    3, 4, 5, 6, 7};// 原始数组
        int num = 2;   // 删除索引为 2 的元素,即删除第三个元素 5
        int[] newArray = new int[oldarray.length-1];// 新数组,长度为原始数组减去 1
        
        for(int i=0;i<newArray.length; i++) {
    
    
            // 判断元素是否越界
            if (num < 0 || num >= oldarray.length) {
    
    
                throw new RuntimeException("元素越界... "); 
            } 
            // 
            if(i<num) {
    
    
                newArray[i] = oldarray[i];
            }
            else {
    
    
                newArray[i] = oldarray[i+1];
            }
        }
        // 打印输出数组内容
        System.out.println(Arrays.toString(oldarray));
        oldarray = newArray;
        System.out.println(Arrays.toString(oldarray));
    }
}

12.Java 实例 – 数组差集

import java.util.ArrayList;
 
public class Main {
    
    
    public static void main(String[] args)  {
    
    
        ArrayList objArray = new ArrayList();
        ArrayList objArray2 = new ArrayList();
        objArray2.add(0,"common1");
        objArray2.add(1,"common2");
        objArray2.add(2,"notcommon");
        objArray2.add(3,"notcommon1");
        objArray.add(0,"common1");
        objArray.add(1,"common2");
        objArray.add(2,"notcommon2");
        System.out.println("array1 的元素" +objArray);
        System.out.println("array2 的元素" +objArray2);
        objArray.removeAll(objArray2);
        System.out.println("array1 与 array2 数组差集为:"+objArray);
    }
}

13.Java 实例 – 数组交集

import java.util.ArrayList;
 
public class Main {
    
    
    public static void main(String[] args)  {
    
    
        ArrayList objArray = new ArrayList();
        ArrayList objArray2 = new ArrayList();
        objArray2.add(0,"common1");
        objArray2.add(1,"common2");
        objArray2.add(2,"notcommon");
        objArray2.add(3,"notcommon1");
        objArray.add(0,"common1");
        objArray.add(1,"common2");
        objArray.add(2,"notcommon2");
        System.out.println("array1 数组元素:"+objArray);
        System.out.println("array2 数组元素:"+objArray2);
        objArray.retainAll(objArray2);
        System.out.println("array2 & array1 数组交集为:"+objArray);
    }
}

14.Java 实例 – 在数组中查找指定元素

import java.util.ArrayList;
 
public class Main {
    
    
    public static void main(String[] args)  {
    
    
        ArrayList<String> objArray = new ArrayList<String>();
        ArrayList<String> objArray2 = new ArrayList<String>();
        objArray2.add(0,"common1");
        objArray2.add(1,"common2");
        objArray2.add(2,"notcommon");
        objArray2.add(3,"notcommon1");
        objArray.add(0,"common1");
        objArray.add(1,"common2");
        System.out.println("objArray 的数组元素:"+objArray);
        System.out.println("objArray2 的数组元素:"+objArray2);
        System.out.println("objArray 是否包含字符串common2? : "
        +objArray.contains("common2"));
        System.out.println("objArray2 是否包含数组 objArray? :"
        +objArray2.contains(objArray) );
    }
}

15.Java 实例 – 判断数组是否相等

import java.util.Arrays;
 
public class Main {
    
    
    public static void main(String[] args) throws Exception {
    
    
        int[] ary = {
    
    1,2,3,4,5,6};
        int[] ary1 = {
    
    1,2,3,4,5,6};
        int[] ary2 = {
    
    1,2,3,4};
        System.out.println("数组 ary 是否与数组 ary1相等? :"
        +Arrays.equals(ary, ary1));
        System.out.println("数组 ary 是否与数组 ary2相等? :"
        +Arrays.equals(ary, ary2));
    }
}

16.Java 实例 - 数组并集

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
 
 
public class Main {
    
    
    public static void main(String[] args) throws Exception {
    
    
        String[] arr1 = {
    
     "1", "2", "3" };
        String[] arr2 = {
    
     "4", "5", "6" };
        String[] result_union = union(arr1, arr2);
        System.out.println("并集的结果如下:");
 
        for (String str : result_union) {
    
    
            System.out.println(str);
        }
    }
 
    // 求两个字符串数组的并集,利用set的元素唯一性
    public static String[] union(String[] arr1, String[] arr2) {
    
    
        Set<String> set = new HashSet<String>();
 
        for (String str : arr1) {
    
    
            set.add(str);
        }
 
        for (String str : arr2) {
    
    
            set.add(str);
        }
 
        String[] result = {
    
      };
 
        return set.toArray(result);
    }
}

三.Java 时间处理

1.Java 实例 - 格式化时间(SimpleDateFormat)

import java.text.SimpleDateFormat;
import java.util.Date;
 
public class Main{
    
    
    public static void main(String[] args){
    
    
        Date date = new Date();
        String strDateFormat = "yyyy-MM-dd HH:mm:ss";
        SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);
        System.out.println(sdf.format(date));
    }
}

2.Java 实例 - 获取当前时间

import java.text.SimpleDateFormat;
import java.util.Date;
 
public class Main{
    
    
    public static void main(String[] args){
    
    
        
        SimpleDateFormat sdf = new SimpleDateFormat();// 格式化时间 
        sdf.applyPattern("yyyy-MM-dd HH:mm:ss a");// a为am/pm的标记  
        Date date = new Date();// 获取当前时间 
        System.out.println("现在时间:" + sdf.format(date)); // 输出已经格式化的现在时间(24小时制) 
    } 
}

3.Java 实例 - 获取年份、月份等

import java.util.Calendar;
 
public class Main {
    
    
    public static void main(String[] args) {
    
    
        Calendar cal = Calendar.getInstance();
        int day = cal.get(Calendar.DATE);
        int month = cal.get(Calendar.MONTH) + 1;
        int year = cal.get(Calendar.YEAR);
        int dow = cal.get(Calendar.DAY_OF_WEEK);
        int dom = cal.get(Calendar.DAY_OF_MONTH);
        int doy = cal.get(Calendar.DAY_OF_YEAR);
 
        System.out.println("当期时间: " + cal.getTime());
        System.out.println("日期: " + day);
        System.out.println("月份: " + month);
        System.out.println("年份: " + year);
        System.out.println("一周的第几天: " + dow);  // 星期日为一周的第一天输出为 1,星期一输出为 2,以此类推
        System.out.println("一月中的第几天: " + dom);
        System.out.println("一年的第几天: " + doy);
    }
}

4.Java 实例 - 时间戳转换成时间

import java.text.SimpleDateFormat;
import java.util.Date;
 
public class Main{
    
    
    public static void main(String[] args){
    
    
        Long timeStamp = System.currentTimeMillis();  //获取当前时间戳
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String sd = sdf.format(new Date(Long.parseLong(String.valueOf(timeStamp))));      // 时间戳转换成时间
        System.out.println("格式化结果:" + sd);
 
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒");
        String sd2 = sdf2.format(new Date(Long.parseLong(String.valueOf(timeStamp))));
        System.out.println("格式化结果:" + sd2);
   }
}

java菜鸟学习实例(一)
java菜鸟学习实例(二)
java菜鸟学习实例(三)
java菜鸟学习实例(四)
java菜鸟学习实例(完整版)

猜你喜欢

转载自blog.csdn.net/qq_54122113/article/details/142825476