首页 > 其他分享 >常用类

常用类

时间:2024-07-05 16:31:22浏览次数:14  
标签:常用 String int System println public out

包装类Wrapper

  1. 针对八种基本数据类型相应的引用类型——包装类
  2. 有了类的特点,可以调用类的方法
基本数据类型 包装类
boolean Booblean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double

注:Object是所有类的父类,关系图中隐藏该父类

基本数据类型boolean对于的包装类关系图

基本数据类型char对应的包装类关系图

各数值类型对应包装类关系图

包装类和基本数据类型的转换

  1. 装箱:基本类型转包装类型;反之为拆箱。
  2. 自jdk5以后的自定装箱和拆箱方式
  3. 自动装箱底层调用valueOf方法,如:Integer.valueOf()
public class Integer01 {
   public static void main(String[] args) {
      // jdk5以前
      // 手动装箱示范:int->Integer
      int num=10;
      Integer integer=new Integer(num);
      Integer integer1=Integer.valueOf(num);
      //手动拆箱
      int i=integer.intValue();
      // 自动装箱
      int num2=20;
      Integer integer2=num2;  // 底层用的是Integer.valueOf(num2)
      // 自动拆箱
      int num3=integer2;   // 底层任然使用intValue()方法

   }
}

其他包装类的用法同理

包装类和String类型的相互转换

Integer和String
 public class Wrapper {
   public static void main(String[] args) {
      // 方法一、包装类Integer转为String
      Integer i=10;  // 自动装箱
      // 以i为基本数值转成str1,对i的原数值没有影响
      String str1=i+"";
      // 方法二
      String str2 = i.toString();
      // 方法三
      String str3 = String.valueOf(i);
      String str4="123456";
      // String->包装类(Integer)
      Integer.parseInt(str4);
      Integer i2=Integer.parseInt(str4);// 自动装箱
      Integer i3=new Integer(str4); // 构造器
   }
}

包装类方法

Integer类和Character类的常用方法。其他方法需要使用时自行查找。

public class Wrapper {
   public static void main(String[] args) {
      System.out.println(Integer.MIN_VALUE); //返回最小值
      System.out.println(Integer.MAX_VALUE);//返回最大值
      System.out.println(Character.isDigit('a'));//判断是不是数字
      System.out.println(Character.isLetter('a'));//判断是不是字母
      System.out.println(Character.isUpperCase('a'));//判断是不是大写
      System.out.println(Character.isLowerCase('a'));//判断是不是小写
      System.out.println(Character.isWhitespace('a'));//判断是不是空格
      System.out.println(Character.toUpperCase('a'));//转成大写
      System.out.println(Character.toLowerCase('A'));//转成小写
   }
}

String

  1. String对象用于保存字符串,也就是一组字符序列
  2. 字符串常量对象是用双引号括起的字符序列。例如:"hello"。
  3. 字符串的字符使用Unicode字符编码,一个字符占两个字节(不区分字母还是汉字)。
  4. String类常用的构造方法
  • String s1=new String();
  • String s2=new String(String original);
  • String s3=new String(char[] a);
  • String s1=new String(char a,int starIndex,int count);

String类图结构

  1. String实现了Serializable接口,说明String可以串行化;可以在网络上传输。
  2. Sting实现了Comparable接口,说明String可以比较。
  3. String是final类;不能被继承。
  4. String有属性  private final char value[];用于存放字符串内容,value是一个final类型,地址不可修改(value不能指向新地址,但是单个字符内容可修改)
public class Str {
    public static void main(String[] args) {
        String s = "rick";
        final char[] value = {'a', 'b', 'c'};
        char[] value2 = {'d', 'e', 'f'};
        // value=value2; final约束不可以修改value地址
        value[0] = 'B';
        for (int i = 0; i < value.length; i++)
            System.out.println(value[i]);
    }
}

创建String对象的两种方式

  • 方式一,直接赋值:String s="hello";
  • 方式二,调用构造器:String s2=new String("hello");
  1. 方式一:先从常量池查看是否有"hello"数据空间,如果有,直接指向;没有则重新创建然后指向。s最终指向常量池的空间地址。
  2. 方式二:先在堆中创建空间,里面维护value属性,指向常量池的hello空间。如果常量池没有"hello",重新创建,有则直接通过value指向。最终指向的是堆中的空间地址。

创建String对象两种方式的内存布局图

调用intern方法时如果池中已经包含一个等于此String对象的字符串(用equals(Object)方法确定)。则返回池中字符串,否则,把String对象的字符串添加到池中,并返回对象的引用。

public class _Str {
    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = new String("hello");
        System.out.println(s1.equals(s2));
        System.out.println(s1 == s2.intern());    // s2.intern最终返回的是常量池中的常量池地址
        System.out.println(s1 == s2);
    }
}
String内存布局示范代码(根据代码画出内存布局图掌握内存布局)
public class _Str {
   public static void main(String[] args) {
      Person person = new Person();
      person.name="rick";
      Person person1 = new Person();
      person1.name="rick";
      System.out.println(person.name.equals(person1.name));
      System.out.println(person==person1);
      System.out.println(person.name=="rick");
      String s1=new String("hi");
      String s2=new String("hi");
      System.out.println(s1==s2);
   }
}
class Person{
   public String name;
}
字符串的特性
public class _Str {
   public static void main(String[] args) {
      String s1="hi"+"rick";  // 编译器会优化为[String s1="hirick";]所以会创建一个对象
      String s2="ab";
      String s3="cd";
      String s4=s2+s3;  //执行步骤:
      // 1.创建一个StingBuilder s=new StringBuilder()
      // 2.执行s.append("ab");
      // 3.执行s.append("cd");
      // 4.执行String s4 = s.toString();
      // 最终s4指向堆中的对象(String)value[]->常量池中的"abcd"
      String s5="abcd";
      System.out.println(s4==s5);
      System.out.println(s4.equals(s5));

      T t = new T();
      t.chage(t.str0, t.ch);
      System.out.println(t.str0);
      System.out.println(t.ch);
   }
}
class T {
   String str0 = new String("hello");
   final char[] ch = {'j', 'a', 'v', 'a'};

   public void chage(String str,char ch[]) {
      str0 = "java";
      ch[0] = 'N';
   }
}

String的常用方法

String类是保存字符串常量的。每次更新都需要重新开辟空间,效率低,所以java设计者提供了StringBuffter和StringBuild增强String的功能,并提高效率。

String常用方法
public class _StrMethod {
    public static void main(String[] args) {
        String str1 = "hello";
        String str2 = "Hello";
        System.out.println(str1.equals(str2));//比较两个字符串内容
        // 2.equalsIgnoreCase 忽略大小写的判断内容是否相等
        String username = "johN";
        if ("john".equalsIgnoreCase(username)) {
            System.out.println("Success!");
        } else {
            System.out.println("Failure!");
        }
        // 3.length 获取字符的个数,字符串的长度
        System.out.println("Jack三".length());
        // 4.indexOf 获取字符在字符串对象中第一次出现的索引,索引从 0 开始,如果找不到,返回-1
        String s1 = "wer@terwe@g";
        int index = s1.indexOf('@');
        System.out.println(index);// 3
        System.out.println("weIndex=" + s1.indexOf("we"));//0
        // 5.lastIndexOf 获取字符在字符串中最后一次出现的索引,索引从 0 开始,如果找不到,返回-1
        s1 = "wer@terwe@g@";
        index = s1.lastIndexOf('@');
        System.out.println(index);//11
        System.out.println("ter 的位置=" + s1.lastIndexOf("ter"));//4
        // 6.substring 截取指定范围的子串
        String name = "hello,张三";
        //下面 name.substring(6) 从索引 6 开始截取后面所有的内容
        System.out.println(name.substring(6));//截取后面的字符
        //name.substring(0,5)表示从索引 0 开始截取,截取到索引 5-1=4的位置
        System.out.println(name.substring(0, 5));//hllo
        // 1.toUpperCase 把字符串内字母全部转换成大写
        String s2 = "HEllo";
        System.out.println(s2.toUpperCase());
        // 2.toLowerCase 把字符串内所有字符转为小写
        System.out.println(s2.toLowerCase());
        String s3 = "jack";
        //
        s3 = s3.concat("hello").concat("every").concat("day");
        System.out.println(s3);
        s3 = "jackhelloeveryday";
        // replace 把s3中所有hello 换成Hi,注意方法只对返回的结果处理,对原数据没有影响
        s3 = s3.replace("hello", "Hi");
        System.out.println(s3);
        String s4 = "Aa,Bb,Cc,Dd,Ee";
        // 以 , 为标准进行分割返回一个数组
        String[] split = s4.split(",");
        System.out.println("逗号分隔开的单个数据分别是:");
        for (int i = 0; i < split.length; i++) {
            System.out.println(split[i]);
        }
        String s5 = "hello";
        // toCharArray 把字符串转为字符数组
        char[] chars0 = s5.toCharArray();
        for (int i = 0; i < chars0.length; i++) {
            System.out.println(chars0[i]);
        }
        // compareTo 比较两个字符串大小前者大返回正数否则为负相等为0
        // 1.长度相同,每个字符相同返回0 2.长度相同或不同,比较时可以区分大小写就返回s6-s7(具体查看源码)3.前面部分相同就s6.length-s7.length
        String s6 = "rick";
        String s7 = "jack";
        System.out.println(s6.compareTo(s7));// 返回 s7-s6的值
        String name1="tom";
        int age=18;
        double score=97.5/3;
        char gender='男';
        String show="姓名"+name1+"年龄"+age+"平均成绩"+score+"性别"+gender;
        System.out.println(show);
        // %s,%d 等这些叫做占位符,由后面的变量来替换,占位符具体用法查看C语言
        String info=String.format("年龄%s年龄%d平均成绩%.2f性别:%c",name1,age,score,gender);
        System.out.println(info);
    }
}

 其他方法通过jdk api 1.8_google文档查看

StringBuffer类

java.lang.StrinngBuffer代表可变的字符序列,可以对字符串内容进行增删。很多方法与String相同,但StringBuffer是可变长度的。

  1. StrinngBuffer直接父类是AbstractStringBuilder
  2. StringBuffer实现了Serializable,即StringBuffer的对象可以串行
  3. 在父类AbstractStringBuilder中有属性char[] value不是final。
  4. 该value数组存放字符串内容,所以存放在堆中(不是常量池)。
  5. StringBuffer是一个final类。

String对比StringBuffer

  • String保存的是字符串常量,里面的值不能修改,String每次更新实际上是更新地址效率低(本质原因是private final char value[];
  • StringBuffer保存的是字符串变量,里面的值可以修改,且修改内容不用每次更新地址效率高(char value[]; 存放在堆中)

StringBuffer构造器

StringBuffer构造器
 public class Buffer {
   public static void main(String[] args) {
      StringBuffer stringBuffer = new StringBuffer(); // 创建一个大小为16的char[],用于存放字符内容
      StringBuffer stringBuffer2 = new StringBuffer(100); // 指定创建一个大小为100的char[]。
      StringBuffer hello = new StringBuffer("hello"); // 通过给String创建一个StringBuffer,char[]大小就是一个str.length+16
   }
}

String和StringBuffer的相互转换

查看代码
 public class StringAndBuffer {
    public static void main(String[] args) {
        // String转为StringBuffer
        String str="hi rick";
        // 使用构造器转换
        StringBuffer stringBuffer = new StringBuffer(str);  //返回的才是StringBuffer对象对String本身没有影响
        // 使用append方法
        StringBuffer stringBuffer1 = new StringBuffer();
        stringBuffer1= stringBuffer1.append(str);
        // StringBuffer转String
        StringBuffer stringBuffer2 = new StringBuffer("hello,jack");
        // 使用StringBuffer提供的toString方法直接转换
        String s = stringBuffer2.toString();
        // 使用构造器
        String s1 = new String(stringBuffer2);

    }
}

StringBuilder类

是一个可变的字符序列,此类提供一个与StringBuffer兼容的API,但是不保证同步(StringBuilder存在多线程问题)。该类被设计用于StringBuffer的简易替换,用在字符串缓冲区被单个线程使用时。如果可能,建议优先采用该类,因为多数情况下,他比StringBuffer更快。

  1. 通过继承关系图得知StringBuilder继承了AbstractStringBuilder类
  2. 实现了Serializable,说明StringBuilder对象是可以串行化(该对象可以网络传输,也可以保存到文件)同时还是final类
  3. StringBuilder对象字符依旧存放在其父类AbstractStringBuilder类,所以字符序列存放在堆中
  4. StringBuild的方法,没有做互斥处理(没有synchronized关键字,因此推荐在多线程的情况下使用)

在StringBuilder上的主要操作是append和insert方法,可重载这些方法,以接受任意类型。

String、StringBuilder、StringBuffer的比较

  1. StringBuilder和StringBuffer非常类似均代表可变的字符序列,且方法一样。
  2. String:不可变字符序列,效率低、但是代码复用率高
  3. StringBuffer:可变字符序列,增删效率较高、线程安全(源码可以看到方法被synchronized修饰)。
  4. StringBuffer:可变字符序列,效率最高、线程不安全。
      String s="a";  // 创建了一个字符串
      s+="b";  // 实际上原来的“a”对象已经丢弃,现在产生新字符串s+"b"("ab")
      //如果多次执行(循环)这些改变字符串操作会导致大量字符串对象存留在内存中,降低效率
      System.out.println("结论:如果这样的操作放在循环中会极大地影响性能,所以对String做大量修改时,不要用String而是StringBuffer。");

使用总结:

  1. 如果字符串存在大量修改操作,通常使用StringBuffer(多线程)或StringBuilder(单线程)
  2. 如果修改字符串操作较少,被多个对象引用,使用String,如配置信息等

Math类

基本介绍:包含用于基本数学运算的方法(均为静态方法),例如初等指数,对数、平方根、三角函数。

Math常用方法
 public class MathMethod {
    public static void main(String[] args) {
       System.out.println("Math常用的方法");
       //看看 Math 常用的方法(静态方法)
       //1.abs 绝对值
       int abs = Math.abs(-9);
       System.out.println(abs);//9
       //2.pow 求幂
       double pow = Math.pow(2, 4);//2 的 4 次方
       System.out.println(pow);//16.0
       //3.ceil 向上取整,返回>=该参数的最小整数(转成 double);
       double ceil = Math.ceil(3.9);
       System.out.println(ceil); //4.0
       //4.floor 向下取整,返回<=该参数的最大整数(转成 double)
       double floor = Math.floor(4.001);
       System.out.println(floor);//4.0
       //5.round 四舍五入 Math.floor(该参数+0.5)
       long round = Math.round(5.51);
       System.out.println(round);//6
       //6.sqrt 求开方
       double sqrt = Math.sqrt(9.0);
       System.out.println(sqrt);//3.0
       //7.random 求随机数
       // random 返回的是 0 <= x < 1 之间的一个随机小数
       // a=2,b=7,=> (int)(a+Math.random()*(b-a+1))=(int)(2+Math.random()*6)
       for (int i = 0; i < 100; i++) {
          System.out.print((int) (2 + Math.random() * (7 - 2 + 1))+" ");
       }
       System.out.println("\n获取a-b之间的随机整数公式:int number=(int)(Math.random()*(b-a+1)+a)");
       //max , min 返回最大值和最小值
       int min = Math.min(1, 9);
       int max = Math.max(45, 90);
       System.out.println("\nmin=" + min);
       System.out.println("max=" + max);
    }
}

Array类

public class ArrayMethod {
    public static void main(String[] args) {
        Integer[] integers = {1, 2, 3};
        // 遍历数组
      /*for (int i = 0; i < integers.length; i++) {
         System.out.println(integers[i]);
      }*/
        // 直接使用Array.toString方法,显示数组
        System.out.println(Arrays.toString(integers));  // 查看toString(选中【Ctrl】+【b】)方法可以知道返回的内容
        Integer arr[] = {-1, 2, -3, 4, 5, -6, 7, 0};
        // 进行排序 1、可以使用冒泡排序,也可以直接使用Array.sort方法直接排序
        Arrays.sort(arr); // 默认排序;因为数组是引用类型传入的是地址排序后会修改实参arr
        Arrays.sort(arr, new Comparator() { // 调用定制排序时,传入两个参数1.排序数组arr,2.实现Comparator()接口的匿名内部类
           // 源码分析1、Array.sort(arr,new Comparator())
           // 2、最终到 TimSort的 private static <T> void binarySort(T[] a, int lo, int hi, int start,
           //                                       Comparator<? super T> c) ()
           // 3、执行到binarySort方法的代码,会根据动态绑定机制c.compare()执行传入的匿名内部类的compare()
           // while (left < right) {
           //                int mid = (left + right) >>> 1;
           //                if (c.compare(pivot, a[mid]) < 0)
           //                    right = mid;
           //                else
           //                    left = mid + 1;
           //            }
           // 4、执行传入的匿名内部类
           // 5、 public int compare(Object o1, Object o2) 返回的值>0还是<0 会影响整个排序的结果

            @Override
            public int compare(Object o1, Object o2) {   // 要求实现compare方法
                Integer i1 = (Integer) o1;
                Integer i2 = (Integer) o2;
                return i1-i2; // 从小到大;体现接口编程的方式(对匿名内部类下断点调试)
              //  return i2-i1;
            }
        });
        // sort是重载的也可以通过传入一个Comparator实现定制排序
        System.out.println(Arrays.toString(arr));
    }
}
查看代码
 public class ArrayCustomSort {
    public static void main(String[] args) {
        int arr[] = {0, -1, 2, 3, -5, -10};
        bubble1(arr);
        System.out.println("冒泡排序后");
        System.out.println(Arrays.toString(arr));
        bubble2(arr, new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                int i1 = (Integer) o1;   //拆箱
                int i2 = (Integer) o2;
                // return i1 - i2;  // 小到大
                 return i2-i1;  //大到小
            }
        });
        System.out.println("自定义排序后:"+Arrays.toString(arr));
    }

    // 冒泡排序
    public static void bubble1(int arr[]) {
        int temp = 0;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {   // 从小到大
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }

    // 改进
    public static void bubble2(int[] arr, Comparator comparator) {
        int temp = 0;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                // 数组的排序由comparator.compare(arr[j], arr[j + 1])返回的值决定
                if (comparator.compare(arr[j], arr[j + 1]) > 0) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }
}
二分查找
 public class ArrayMethod {
    public static void main(String[] args) {
        // binarySearch通过二分查找,要求必须是排序好(有序的)的数组
        Integer[] arr = {-1,0,1,2,3,4,6,8,10};
        int index=Arrays.binarySearch(arr,10);
        System.out.println(index);  // 数组不存在查找的元素则返回return -(low + 1); low指查找元素应该存在的位置
    }
}
Array常用类
 public class ArrayMethod {
    public static void main(String[] args) {
        // binarySearch通过二分查找,要求必须是排序好(有序的)的数组
        Integer[] arr = {-1,0,1,2,3,4,6,8,10};
        int index=Arrays.binarySearch(arr,10);
        System.out.println(index);  // 数组不存在查找的元素则返回return -(low + 1); low指查找元素应该存在的位置
        // copyOf 数组元素复制:从arr数组中拷贝arr.length个元素到newArr数组中。
        // 拷贝的长度大于arr.length,超出部分添加null,拷贝长度小于0抛出异常
        // 底层使用System.arraycopy()
        Integer[] newArr=Arrays.copyOf(arr,arr.length);
        System.out.println("复制的数组:"+Arrays.toString(newArr));

        // ill数组元素填充
        Integer num[]=new Integer[]{77,177,777};
        // 用99填充num数组换言之用99替换所有原来的元素
        Arrays.fill(num,99);
        System.out.println("数组填充后:"+Arrays.toString(num));
        // equals 比较两个数组是否完全一致
        Integer[] arr2 = {-1,0,1,2,3,4,6,8,10};
        // 如果arr和arr2数组元素一样返回true
        // 如果不完全一样返回false
        boolean equals=Arrays.equals(arr,arr2);
        System.out.println(equals);
        // asList把一组值转为list
        // asList方法,会把(2,3,4,5,8,-1,0)数据转为一个集合
        // 返回的asList变异类型List接口
        // asList运行类型是Array类的静态内部类:private static class ArrayList<E> extends AbstractList<E>
        //        implements RandomAccess, java.io.Serializable
        List<Integer>asList=Arrays.asList(2,3,4,5,8,-1,0);
        System.out.println("aslist="+asList);
        System.out.println("asList的运行类型是"+asList.getClass());
    }
}
Array应用练习
 public class ArrayMethod {
    public static void main(String[] args) {
        Book[] books = new Book[4];
        books[0] = new Book("01", 100);
        books[1] = new Book("002", 200);
        books[2] = new Book("0003", 300);
        books[3] = new Book("00004", 400);
        //price从小到大
        Arrays.sort(books, new Comparator<Book>() {
            @Override
            public int compare(Book o1, Book o2) {
                Book book1 = (Book) o1;
                Book book2 = (Book) o2;
                double val = book2.getPrice() - book1.getPrice();
                if (val > 0) {
                    return -1;
                } else if (val < 0) {
                    return 1;
                } else {
                    return 0;
                }
            }
        });
        System.out.println(Arrays.toString(books));
        //price从大到小
        Arrays.sort(books, new Comparator<Book>() {
            @Override
            public int compare(Book o1, Book o2) {
                Book book1 = (Book) o1;
                Book book2 = (Book) o2;
                double val = book2.getPrice() - book1.getPrice();
                if (val > 0) {
                    return 1;
                } else if (val < 0) {
                    return -1;
                } else {
                    return 0;
                }
            }
        });
        System.out.println("\n" + Arrays.toString(books));
        // 按书名长度排序,长到短
        Arrays.sort(books, new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                Book book1 = (Book) o1;
                Book book2 = (Book) o2;
                return book2.getName().length() - book1.getName().length();
            }
        });
        System.out.println("\n" + Arrays.toString(books));
    }
}

class Book {
    private String name;
    private double price;

    public Book(String name, double price) {
        this.name = name;
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                "price=" + price +
                '}' + "\n";
    }
}

 

标签:常用,String,int,System,println,public,out
From: https://www.cnblogs.com/vayenge/p/18130191

相关文章

  • Camunda流程引擎常用API接口介绍
    本文介绍Camunda7(Camunda7.19.0版本)流程引擎常用API接口,让大家了解Camunda常用的API接口有哪些(包括有:RepositoryService、RuntimeService、TaskService、HistoryService等),项目中如何调用JavaAPI和RESTAPI,尤其是查询API接口,Camunda提供了多种查询方式(包括有:JavaQueryAPI、RES......
  • 干货丨渗透测试常用方法总结,大神之笔!_数据库渗透测试
    一、渗透流程信息收集漏洞验证/漏洞攻击提权,权限维持日志清理信息收集一般先运行端口扫描和漏洞扫描获取可以利用的漏洞。多利用搜索引擎端口扫描有授权的情况下直接使用nmap、masscan、自己写py脚本等端口扫描工具直接获取开放的端口和获取服务端的banner......
  • 开发常用语句
    sql注入问题优化,orderby里面不能用下面这种方式,为了防止sql注入,验证输入的值是否合法,比如只能包含英文,数字和下划线应以英文开头Map<String,Object>parameters=newHashMap<>();sql.append("where(lzbhlike:keywordorlzmclike:keyword)");parameters.put("keyw......
  • 三菱PLC内部常用的特殊辅助继电器总结
    辅助继电器是plc中数量最多的一种继电器,一般的辅助继电器与继电器控制系统中的中间继电器相似。辅助继电器不能直接驱动外部负载,负载只能由输出继电器的外部触点驱动。辅助继电器的常开与常闭触点在PLC内部编程时可无限次使用。辅助继电器采用M与十进制数共同组成编......
  • mongodb常用语句
    mongodb常用语句1.数据库操作1.1创建数据库创建数据库(如果数据库存在则创建,否则则进入该数据库)useblog注:创建数据库后,表中并不会出现在数据库列表中,需要添加数据后,才会出现在数据库列表中1.2修改数据库修改数据库的名称方法1,拷贝当前数据库,再删除旧数据......
  • VBA常用的字符串内置函数
    前言在VBA程序中,常用的内置函数可以按照功能分为字符串函数、数字函数、转换函数等等,本节主要会介绍常用的字符串的内置函数,包括Len()、Left()、Mid()、Right()、Split()、String()、StrConV()等。本节的练习数据表以下表为例:1.使用Len()计算字符串长度示例:Sheet1的A......
  • SQL Server 中的 DBCC(Database Console Commands)命令提供了一系列用于数据库管理和诊
    SQLServer中的DBCC(DatabaseConsoleCommands)命令提供了一系列用于数据库管理和诊断的工具和功能。以下是一些常用的DBCC命令及其功能:DBCCCHECKDB:用于检查整个数据库的物理和逻辑一致性。sqlCopyCodeDBCCCHECKDB('MyDatabase');DBCCCHECKTABLE:检查指定表......
  • 常用正则表达式
    字符\:特殊字符、转义字符^:正则表达式的开始$:正则表达式的结束*:等于{0,},即0到多+:等于{1,},即1到多?:等于{0,1},即0到1{n}:匹配确定的次数,n次{n,}:匹配大于n的次数,等于n*{n,m}:匹配大于n,小于m的次数.:匹配除“\n”之外的任何单个字符。\d:匹......
  • qt 入门常用类理解(涉及QMessageBox,Layout,Spacers,Splitter,Buuddy,LoginApp,QFile,
    1.QMessageBoxQMessageBox::Yes QApplication::quit();QMessageBox::exec用于在模态(阻塞式)对话框中显示一个消息框,并等待用户的响应。这个函数通常用于在应用程序中显示消息、警告或询问对话框,并等待用户采取适当的操作后继续执行。int QMessageBox::exec()exec 函数没有......
  • 人工智能AI介绍及常用软件在国产化平台的支持情况
    一、简介(一)定义详解人工智能(ArtificialIntelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智......