通用工具(common)

  1. commons-io 引入

    • IOUtils

      方法(有多个重载方法略)描述
      copy(InputStream in, OutputStream out)流复制,可复制字节流及字符流
      copyLarge(InputStream in, OutputStream out)大流复制,可复制字节流及字符流
      toInputStream(String input, Charset charset)获取字符串的输入流
      toBufferedInputStream(InputStream input, int size)获取缓存输入流,size为缓冲区大小
      toBufferedReader(Reader reader, int size)获取字符缓冲流,size为缓冲区大小
      buffer(InputStream inputStream, int size)获取缓冲流,size为缓冲区大小
      closeQuietly(Closeable closeable)安静的关流,不抛异常
      close(Closeable closeable)关流,抛异常
      contentEquals(InputStream in1, InputStream in2)判断流是否相等,可判断字节流及字符流
      contentEqualsIgnoreEOL(Reader in1, Reader in2)判断流是否相等,忽略换行符
      lineIterator(InputStream input, Charset charset)获取行迭代器,参数可为字符流
      read(InputStream input, byte[] buffer)从一个流中读取内容,参数可为字符流
      readFully(InputStream input, byte[] buffer)从一个流中读取内容,
      读取的长度不够,就会抛出异常
      readLines(InputStream input)读取每行数据,返回list,参数可为字符流
      resourceToByteArray(String name)通过文件路径获取字节数组
      resourceToString(String name, Charset charset)通过文件路径获取字符串
      resourceToURL(String name)通过文件路径获取URL
      skip(InputStream input, long toSkip)跳过指定长度的流,参数可为字符流
      skipFully(InputStream input, long toSkip)完全跳过指定长度的流,参数可为字符流
      toByteArray(InputStream input)将输入流转换成字节数组;参数为字节流,字符流,URI,URLConnection
      toCharArray(InputStream is)将输入流转换成字符数组;参数为字节流,字符流
      toString(InputStream input)将输入流转换成字符串;参数可为字节数组,字节流,字符流,URI
      write(byte[] data, OutputStream output)把数据写入到输出流中,数据可以字节数组及字符串可转字节流,字符流
      writeChunked(byte[] d, OutputStream o)写出块;字节数组写入字节流;字符数组写入字符流
      writeLines(Collection l, String e, OutputStream o)写出行;
    • FileUtils

      方法描述
      byteCountToDisplaySize(long size)字节数显示大小(单位转换),参数可为BigInteger
      checksum(File file, Checksum checksum)文件校验
      checksumCRC32(File file)文件CRC32校验
      cleanDirectory(File directory)清空文件夹
      contentEquals(File file1, File file2)判断文件是否一致
      contentEqualsIgnoreEOL(File f1, File f2, String charset)判断文件是否一致,忽略换行
      convertFileCollectionToFileArray(Collection files)文件集合转数组
      copyDirectory(File srcDir, File destDir)复制文件夹,可设置文件过滤器及是否保留文件日期
      copyDirectoryToDirectory(File sourceDir, File destinationDir)复制文件夹到文件夹
      copyFile(File srcFile, File destFile)复制文件,可设置是否保留文件日期
      copyFileToDirectory(File srcFile, File destDir)复制文件到文件夹,可设置是否保留文件日期
      copyInputStreamToFile(InputStream source, File destination)复制流到文件
      copyToDirectory(File sourceFile, File destinationDir)复制到文件夹,复制文件可为FIle也可为File集合
      copyToFile(InputStream source, File destination)复制流到文件
      copyURLToFile(URL source, File destination)复制URL到文件
      deleteDirectory(File directory)删除目录
      deleteQuietly(File file)安静的删除
      directoryContains(File directory, File child)判断目录是否包含
      forceDelete(File file)强制删除
      forceDeleteOnExit(File file)强制退出删除
      forceMkdir(File directory)强制创建目录
      forceMkdirParent(File file)强制创建父级目录
      getFile(File directory, String… names)directory路径拼接各names
      getTempDirectory()获取临时目录File对象
      getTempDirectoryPath()获取临时目录路径
      getUserDirectory()获取用户目录File对象
      getUserDirectoryPath()获取用户目录路径
      isFileNewer(File file, Date date)是否是新文件
      isFileOlder(File file, Date date)是否是旧文件
      iterateFiles(File directory, String[] extensions, boolean r)获取文件迭代器;可配置文件\目录过滤器,扩展名数组,是否迭代
      iterateFilesAndDirs(File dir, IOFileFilter filter, IOFileFilter filter)获取文件及目录迭代器;可配置文件\目录过滤器
      lineIterator(File file)获取行迭代器,用于读取文件
      listFiles(File directory, String[] extensions, boolean recursive)获取文件集合,可配置文件\目录过滤器,扩展名数组,是否迭代
      listFilesAndDirs(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)获取文件及目录集合;可配置文件\目录过滤器
      moveDirectory(File srcDir, File destDir)移动文件夹
      moveDirectoryToDirectory(File src, File destDir, boolean createDestDir)移动文件夹到文件夹
      moveFile(File srcFile, File destFile)移动文件
      moveFileToDirectory(File srcFile, File destDir, boolean createDestDir)移动文件夹到文件夹,配置是否新建文件夹
      moveToDirectory(File src, File destDir, boolean createDestDir)移动到文件夹,配置是否新建文件夹
      openInputStream(File file)获取输入流
      openOutputStream(File file, boolean append)获取输出流,配置是否可追加
      readFileToByteArray(File file)读取文件为字节数组
      readFileToString(File file, Charset charsetName)读取文件为字符串
      readLines(File file, Charset charset)读取文件每行为集合
      sizeOf(File file)获取文件字节大小,返回long
      sizeOfAsBigInteger(File file)获取文件字节大小,返回BigInteger
      sizeOfDirectory(File directory)获取目录下文件字节大小,返回long
      sizeOfDirectoryAsBigInteger(File directory)获取目录下文件字节大小,返回BigInteger
      toFile(URL url)URL转File,单转换
      toFiles(URL… urls)URL转File,批量转换
      touch(File file)修改文件修改时间为当前时间
      toURLs(File… files)批量File转换URL
      write(File file, CharSequence data, Charset charset)文件写入数据,可配置字符集,是否追加
      writeByteArrayToFile(File file, byte[] data)字节数组写入文件,可配置写入开始及长度,是否追加
      writeLines(File file, Collection<?> lines)文件写入每行数据,可配置是否追加
      writeStringToFile(File file, String data, Charset charset)字符串写入文件
    • FilenameUtils

      方法描述
      normalize(String fileName)获取当前系统格式化路径
      normalizeNoEndSeparator(String fileName)获取当前系统无结尾分隔符的路径,linux路径
      concat(String basePath, String fullFileNameToAdd)合并目录和文件名为文件全路径
      directoryContains(String canonicalParent, String canonicalChild)判断目录下是否包含指定文件或目录
      separatorsToUnix(String path)转换分隔符为linux系统分隔符
      separatorsToWindows(String path)转换分隔符为windows系统分隔符
      separatorsToSystem(String path)转换分隔符为当前系统分隔符
      getPrefixLength(String fileName)获取前缀长度
      indexOfLastSeparator(String fileName)获取最后一个/的位置
      indexOfExtension(String fileName)获取最后一个.的位置
      getPrefix(String fileName)获取前缀
      getPath(String fileName)去除前缀的路径(不包含文件名)
      getPathNoEndSeparator(String fileName)去除前缀并结尾去除分隔符
      getFullPath(String fileName)获取完整路径(不包含文件名)
      getFullPathNoEndSeparator(String fileName)获取完整路径并结尾去除分隔符
      getName(String fileName)获取文件名,包括扩展名
      getBaseName(String fileName)获取文件名,不包括扩展名
      getExtension(String fileName)获取文件扩展名
      removeExtension(String fileName)去除扩展名
      equals(String fileName1, String fileName2)判断文件路径是否相同
      equalsOnSystem(String fileName1, String fileName2)判断文件路径是否相同,不格式化,大小写敏感根据系统规则
      equalsNormalized(String fileName1, String fileName2)判断文件路径是否相同,格式化并大小写敏感
      equalsNormalizedOnSystem(String fileName1, String fileName2)判断文件路径是否相同,格式化,大小写敏感根据系统规则
      isExtension(String fileName, String… extensions)判断文件扩展名是否包含在指定集合中
      wildcardMatch(String fileName, String wildcardMatcher)判断文件扩展名是否和指定规则匹配,大小写敏感 注: *.??? *表示多字符 ?表示一个字符
      wildcardMatchOnSystem(String fileName, String wildcardMatcher)判断文件扩展名是否和指定规则匹配,根据系统判断敏感型
    • EndianUtils

      方法描述
      swapShort(short value)
      swapInteger(int value)
      swapLong(long value)
      swapFloat(float value)
      swapDouble(double value)
      writeSwappedShort(byte[] data, int offset, short value)字节数组可为字节流
      readSwappedShort(byte[] data, int offset)字节数组可为字节流
      readSwappedUnsignedShort(byte[] data, int offset)字节数组可为字节流
      writeSwappedInteger(byte[] data, int offset, int value)字节数组可为字节流
      readSwappedInteger(byte[] data, int offset)字节数组可为字节流
      readSwappedUnsignedInteger(byte[] data, int offset)字节数组可为字节流
      writeSwappedLong(byte[] data, int offset, long value)字节数组可为字节流
      readSwappedLong(byte[] data, int offset)字节数组可为字节流
      writeSwappedFloat(byte[] data, int offset, float value)字节数组可为字节流
      readSwappedFloat(byte[] data, int offset)字节数组可为字节流
      writeSwappedDouble(byte[] data, int offset, double value)字节数组可为字节流
      readSwappedDouble(byte[] data, int offset)字节数组可为字节流
    • FileFilterUtils

      方法描述
      filter(IOFileFilter filter, Iterable files)过滤文件获得数组
      filterList(IOFileFilter filter, Iterable files)过滤文件获得list集合
      filterSet(IOFileFilter filter, File… files)过滤文件获得set集合
      prefixFileFilter(String prefix)根据前缀获取文件过滤器
      suffixFileFilter(String suffix)根据后缀获取文件过滤器
      nameFileFilter(String name)根据文件名获取文件过滤器
      directoryFileFilter()目录过滤器(只获取目录)
      fileFileFilter()文件过滤器(只获取文件)
      and(IOFileFilter… filters)逻辑,与;
      or(IOFileFilter… filters)逻辑,或;
      toList(IOFileFilter… filters)转换为过滤器集合
      notFileFilter(IOFileFilter filter)逻辑,非;
      trueFileFilter()逻辑,是;
      falseFileFilter()逻辑,否;
      asFileFilter(FileFilter filter)FileFilter转IOFileFilter
      ageFileFilter(long cutoff)时间过滤器;可设置时间为long及Date;
      acceptOlder设置是否接受旧文件
      sizeFileFilter(long threshold)文件大小过滤器;
      可配置acceptLarger设置是否接受更大
      sizeRangeFileFilter(long min, long max)文件大小(范围)过滤器
      magicNumberFileFilter(String magicNumber)magicNumber过滤器
      makeCVSAware(IOFileFilter filter)cvs文件过滤器
      makeSVNAware(IOFileFilter filter)SVN文件过滤器
      makeDirectoryOnly(IOFileFilter filter)只有文件夹过滤器
      makeFileOnly(IOFileFilter filter)只有文件过滤器
    • Comparators

      • 实现类

        类名描述
        CompositeFileComparator(Iterable<Comparator> delegates)复合文件比较器
        DefaultFileComparator()默认比较器,直接调用File的compareTo方法
        DirectoryFileComparator()文件目录比较器,
        ExtensionFileComparator(IOCase caseSensitivity)文件路径比较器,参数为是否大小写敏感,无参为大小写敏感
        LastModifiedFileComparator()文件最后修改比较器
        NameFileComparator(IOCase caseSensitivity)文件名比较器,参数为是否大小写敏感,无参为大小写敏感
        PathFileComparator(IOCase caseSensitivity)文件路径比较器,参数为是否大小写敏感,无参为大小写敏感
        SizeFileComparator(boolean sumDirectoryContents)文件大小比较器,参数为是否为目录下所有文件大小,无参为false
      • 方法

        方法描述
        compare(File file1, File file2)比较两个文件,file1<file2返回-1,file1>file2返回1,相等为0
        sort(File… files)排序,返回数组;参数可为集合,返回集合
        reversed()获取反转的比较器
    • 目录\文件监听

      • 监听器

        package com.example.sqldemo;
        import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
        import org.apache.commons.io.monitor.FileAlterationObserver;
        import java.io.File;
        public class MyFileListener extends FileAlterationListenerAdaptor {
            // 文件创建
            @Override
            public void onFileCreate(File file) {
                System.out.println("[新建]:" + file.getAbsolutePath());
            }
            // 文件修改
            @Override
            public void onFileChange(File file) {
                System.out.println("[修改]:" + file.getAbsolutePath());
            }
            // 文件删除
            @Override
            public void onFileDelete(File file) {
                System.out.println("[删除]:" + file.getAbsolutePath());
            }
            // 目录创建
            @Override
            public void onDirectoryCreate(File directory) {
                System.out.println("[新建]:" + directory.getAbsolutePath());
            }
            // 目录修改
            @Override
            public void onDirectoryChange(File directory) {
                System.out.println("[修改]:" + directory.getAbsolutePath());
            }
            // 目录删除
            @Override
            public void onDirectoryDelete(File directory) {
                System.out.println("[删除]:" + directory.getAbsolutePath());
            }
            @Override
            public void onStart(FileAlterationObserver observer) {
                super.onStart(observer);
            }
            @Override
            public void onStop(FileAlterationObserver observer) {
                super.onStop(observer);
            }
        }
        
      • 启用监听器

        FileAlterationObserver observer = new FileAlterationObserver("D:\\demo\\cvs");
        observer.addListener(new MyFileListener()); // 设置文件变化监听器
        FileAlterationMonitor monitor = new FileAlterationMonitor(5000, observer);// 创建文件变化监听器,间隔5秒
        monitor.start();// 开始监控
        
  2. commons-lang3 引入

    • StringUtils

      方法描述
      abbreviate(String str, int maxWidth)缩略字符串,maxWidth为现在长度,最小为4
      可配置其他参数offset 补偿,默认为0
      abbrevMarker 省略标记,默认为 …
      abbreviateMiddle(String str, String m, int l)缩略字符串,l为m.length+2时字符串中间替换m
      appendIfMissing(String str, CharSequence suffix, CharSequence… suffixes)字符串结尾的后缀是否与你要结尾的后缀匹配,若不匹配则添加后缀
      suffix为添加的后缀;suffixes为匹配的后缀
      无suffixes时匹配suffix
      appendIfMissingIgnoreCase(String str, CharSequence suffix, CharSequence… suffixes)同上,只是 忽略大小写
      capitalize(String str)首字母大写
      uncapitalize(String str)首字母小写
      center(String str, int size, char padChar)字符串扩充至指定大小且居中
      若扩充大小少于原字符大小则返回原字符,若扩充大小为 负数则为0计算 )
      padChar可为字符串,也可不填,默认为" "
      chomp(String str)去除字符串中的"\n", “\r”, or “\r\n”
      chop(String str)
      compare(String str1, String str2)字符串比较,
      可设置nullIsLess,null为最小,默认为true
      compareIgnoreCase(String str1, String str2)同上(忽略大小写)
      contains(CharSequence s1, CharSequence s2)判断一字符串是否包含另一字符串
      containsIgnoreCase(CharSequence s1, CharSequence s2)同上(忽略大小写)
      containsAny(CharSequence cs, CharSequence searchChars)判断一字符串是否包含另一字符串中的任意字符,searchChars可为字符或字符串不定参
      containsNone(CharSequence cs, String invalidChars)判断一字符串是否不包含另一字符串中的任意字符,validChars可为字符不定参
      containsOnly(CharSequence cs, String validChars)判断一字符串是否只包含另一字符串中的任意字符,validChars可为字符不定参
      containsWhitespace(CharSequence seq)判断是否包含空格
      countMatches(CharSequence str, char ch)获取字符串中字符个数,参数ch可为字符串
      defaultIfBlank(T str, T defaultStr)为空白时设置默认值
      defaultIfEmpty(T str, T defaultStr)为空时设置默认值
      deleteWhitespace(String str)字符串去空格(包括中间)
      difference(String str1, String str2)
      endsWith(CharSequence str, CharSequence suffix)判断是否以suffix结尾
      endsWithIgnoreCase(CharSequence str, CharSequence suffix)同上(忽略大小写)
      endsWithAny(CharSequence sequence, CharSequence… searchStrings)判断是否以searchStrings中任意为结尾
      equals(CharSequence cs1, CharSequence cs2)判断字符串是否相等
      equalsIgnoreCase(CharSequence cs1, CharSequence cs2)同上(忽略大小写)
      equalsAny(CharSequence string, CharSequence… searchStrings)判断是否与searchStrings中任意相等
      equalsAnyIgnoreCase(CharSequence string, CharSequence… searchStrings)同上(忽略大小写)
      firstNonBlank(T… values)获取第一个不是空白的值
      firstNonEmpty(T… values)获取第一个不是空的值
      getBytes(String string, Charset charset)获取字节数组
      getCommonPrefix(String… strs)获取公共前缀
      getDigits(String str)获取字符串中所有数字
      getIfBlank(T str, Supplier defaultSupplier)
      getIfBlank(T str, Supplier defaultSupplier)
      indexOf(CharSequence s1, CharSequence s2)获取s2在s1所在位置索引
      indexOfIgnoreCase(CharSequence str, CharSequence searchStr)同上(忽略大小写)
      indexOfAny(CharSequence str, CharSequence… searchStrs)获取searchStrs在s1所在位置索引
      searchStrs任意一个出现的第一个索引位置
      indexOfAnyBut(CharSequence seq, CharSequence searchChars)
      indexOfDifference(CharSequence… css)
      isAllBlank(CharSequence… css)是否所有都为空白
      isAllEmpty(CharSequence… css)是否所有都为空
      isAllLowerCase(CharSequence cs)是否都为小写
      isAllUpperCase(CharSequence cs)是否都为大写
      isAlpha(CharSequence cs)判断是否全为字母
      isAlphanumeric(CharSequence cs)判断是否全为字母或数字
      isAlphanumericSpace(CharSequence cs)判断是否全为字母或数字或空格
      isAlphaSpace(CharSequence cs)判断是否全为字母或空格
      isAnyBlank(CharSequence… css)判断是否有空白
      isAnyEmpty(CharSequence… css)判断是否有空
      isAsciiPrintable(CharSequence cs)检查字符串是否只有可打印的ASCII编码的的字符
      isBlank(CharSequence cs)判断是否为空白
      isEmpty(CharSequence cs)判断是否为空
      isMixedCase(CharSequence cs)判断是否含有大小写字母
      isNoneBlank(CharSequence… css)判断是否都不为空白
      isNoneEmpty(CharSequence… css)判断是否都不为空
      isNotBlank(CharSequence cs)判断不为空白
      isNotEmpty(CharSequence cs)判断不为空
      isNumeric(CharSequence cs)判断是否为数字
      isNumericSpace(CharSequence cs)是否全为数字
      isWhitespace(CharSequence cs)判断是否全为空格
      join(byte[] array, char separator)字符串拼接,各种类型数组按分隔符拼接
      joinWith(String separator, Object… objects)分隔符拼接objects
      lastIndexOf(CharSequence s1, CharSequence s2)获取s2在s1中的最后一个位置的索引
      lastOrdinalIndexOf(CharSequence s1, CharSequence s2, int ordinal)获取s2在s1中倒数第ordinal个的位置索引
      left(String str, int len)左边截取len个字符
      leftPad(String str, int size, String padStr)str不够size长的在左边补padStr
      length(CharSequence cs)获取字符串长度
      lowerCase(String str)转换为小写字母
      mid(String str, int pos, int len)截取字符串
      normalizeSpace(String str)格式化空格,去两端空格
      ordinalIndexOf(CharSequence str, CharSequence searchStr, int ordinal)str中第ordinal个searchStr所在位置索引
      overlay(String str, String overlay, int start, int end)用overlay覆盖str中start至end位置
      prependIfMissing(String str, CharSequence prefix, CharSequence… prefixes)字符串前缀是否与你要的前缀匹配,若不匹配则添加前缀
      prefix为添加的前缀;prefixes为匹配的前缀
      无prefixes时匹配prefix
      remove(String str, char remove)移除字符串str中的字符remove
      removeIgnoreCase(String str, String remove)同上(忽略大小写)
      removeEnd(String str, String remove)移除字符串str后缀remove
      removeEndIgnoreCase(String str, String remove)同上(忽略大小写)
      removeStart(String str, String remove)移除字符串str前缀remove
      removeStartIgnoreCase(String str, String remove)同上(忽略大小写)
      repeat(char ch, int repeat)字符ch重复repeat次
      replace(String text, String searchString, String replacement)text中searchString替换为replacement
      replaceIgnoreCase(String text, String searchString, String replacement)同上(忽略大小写)
      replaceChars(String str, String searchChars, String replaceChars)str中的searchChars各字符替换为replaceChars中各字符
      replaceEach(String text, String[] searchList, String[] replacementList)str中的searchList各字符替换为replacementList中各字符
      replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)str中的searchList各字符重复替换为replacementList中各字符
      replaceOnce(String text, String searchString, String replacement)text中第一个searchString替换为replacement
      replaceOnceIgnoreCase(String text, String searchString, String replacement)同上(忽略大小写)
      reverse(String str)反转字符串
      reverseDelimited(String str, char sep)反转字符串,sep为字符串定界符
      right(String str, int len)右边截取len个字符
      rightPad(String str, int size)str不够size长的在右边补padStr
      rotate(String str, int shift)把str的后shift个字符移到前面
      split(String str, char separatorChar)字符串按separatorChar分割为数组
      splitByCharacterType(String str)根据字符类型分割字符串
      splitByCharacterTypeCamelCase(String str)同上(忽略大小写)
      splitByWholeSeparator(String str, String separator)按分割符整体分割
      splitByWholeSeparatorPreserveAllTokens(String str, String separator)按分割符整体分割,并保留整个令牌
      splitPreserveAllTokens(String str)按分割符整体分割,并保留整个令牌
      startsWith(CharSequence str, CharSequence prefix)判断是否已以prefix开头
      startsWithIgnoreCase(CharSequence str, CharSequence prefix)同上(忽略大小写)
      startsWithAny(CharSequence sequence, CharSequence… searchStrings)判断是否已以任意searchStrings开头
      strip(String str, String stripChars)去除两端的stripChars字符串
      stripAccents(String input)移除输入字符串中的java特殊字符
      stripAll(String… strs,String stripChars)批量修改字符串
      stripEnd(String str, String stripChars)批量去除字符串两端的stripChars字符串
      stripStart(String str, String stripChars)去除前端的stripChars字符串
      stripToEmpty(String str)去两端空格
      stripToNull(String str)去两端空格
      substring(String str,String str, int start, int end)字符串截取,从start到end;end不传截到末
      substringAfter(String str, int separator)截取第一个分隔符separator之后的字符串
      substringAfterLast(String str, int separator)截取最后一个分隔符separator之后的字符串
      substringBefore(String str, String separator)截取第一个分隔符separator之前的字符串
      substringBeforeLast(String str, String separator)截取最后一个分隔符separator之前的字符串
      substringBetween(String str, String tag)获取tag之间的第一个字符串
      substringsBetween(String str, String open, String close)获取open与close之间的所有字符串(成对截取)
      swapCase(String str)大小写转换
      toCodePoints(CharSequence str)获取字符串各字符的十进制unicode码
      toEncodedString(byte[] bytes, Charset charset)字节数组转字符串
      toRootLowerCase(String source)转小写
      toRootUpperCase(String source)转大写
      trim(String str)去字符串两端空格
      trimToEmpty(String str)去字符串两端空格
      trimToNull(String str)去字符串两端空格
      truncate(String str, int offset,int maxWidth)截短,从offset开始最长maxWidth
      unwrap(String str, char wrapChar)去除字符串str前后端wrapChar
      upperCase(String str)转大写
      valueOf(char[] value)字节数组转字符串
      wrap(String str, char wrapWith)字符串str前后端添加wrapChar
      wrapIfMissing(String str, char wrapWith)字符串str前后端添加wrapChar(有则不添加)
    • RandomStringUtils

      方法描述
      random(int count, boolean letters, boolean numbers)随机字符串,letters字母,numbers数字
      random(int count, String chars)随机字符串,指定字符
      randomAlphabetic(int count)随机字母,一个参数为个数,
      两个参数为个数范围
      randomAlphanumeric(int count)随机字母数字,一个参数为个数,
      两个参数为个数范围
      randomGraph(int count)随机字符串,一个参数为个数,
      两个参数为个数范围
      randomNumeric(int count)随机数字,一个参数为个数,
      两个参数为个数范围
      randomPrint(int count)随机字符串,一个参数为个数,
      两个参数为个数范围
      randomAscii(int count)随机字符串,一个参数为个数,
      两个参数为个数范围
    • NumberUtils

      方法描述
      toInt(String str, int defaultValue)字符串转int,可设置默认值,不设为0;类似方法还有 toLong,toFloat,toDouble,toByte,toShort
      toScaledBigDecimal(BigDecimal value, int scale, RoundingMode round)value值转BigDecimal,scale为保留小数位数,round为舍入模式;value值也可为Float,Double,String类型;scale与round可不传,默认为2及HALF_EVEN(就近取值,相同取偶)
      createNumber(String str)创建一个数字
      createFloat(String str)字符串转Float;类似方法有createDouble,createInteger,
      createLong,createBigInteger,createBigDecimal
      min(long… array)获取最小值;参数类型可为int,short,byte,double,float
      max(long… array)获取最大值;参数类型可为int,short,byte,double,float
      isDigits(String str)判断字符串是否是纯数字
      isCreatable(String str)判断字符串是否是可转换为数字,包含. E等特殊符号
      isParsable(String str)是否可解析,包含(-,.)
      compare(int x, int y)数字比大小;参数类型可为short,byte,long;
      x小返回-1,x大返回1,相等返回0
    • ArrayUtils

      方法描述
      add(boolean[] array, boolean element)数组扩容添加元素(尾部添加)
      类型可为各基本类型,object及泛型
      addAll(boolean[] array1, boolean… array2)数组批量扩容添加元素(尾部添加)
      类型可为各基本类型及泛型
      addFirst(boolean[] array, boolean element)数组扩容添加元素(头部添加)
      类型可为各基本类型及泛型
      clone(boolean[] array)数组克隆
      类型可为各基本类型及泛型
      contains(boolean[] array, boolean valueToFind)判断数组是否含有某元素
      类型可为各基本类型,object及泛型
      get(T[] array, int index, T defaultValue)通过索引获取值,可设置默认值
      getLength(Object array)获取数组长度
      hashCode(Object array)获取数组hashCode
      indexesOf(boolean[] array, boolean value, int start)获取array中所有value的索引,
      start为开始查找索引,可不传,默认为0;
      类型可为各基本类型及object
      indexOf(boolean[] array, boolean value, int start)获取array中value的索引,
      start为开始查找索引,可不传,默认为0;
      类型可为各基本类型及object
      insert(int index, boolean[] array, boolean… values)在array的index索引位置批量添加数据
      类型可为各基本类型及泛型
      isArrayIndexValid(T[] array, int index)判断index索引是否有效
      isEmpty(boolean[] array)判断数组是否为空
      类型可为各基本类型及object
      isNotEmpty(boolean[] array)判断数组是否不为空
      类型可为各基本类型及object
      isSameLength(boolean[] arr1, boolean[] arr2)判断数组是否长度相等
      类型可为各基本类型及object
      isSameType(Object array1, Object array2)判断数组类型是否相等
      isSorted(boolean[] array)判断数组是否已排序
      类型可为各基本类型及泛型
      lastIndexOf(boolean[] arr, boolean value, int start)获取array中value的索引(倒序),
      start为开始查找索引,可不传,默认为0;
      类型可为各基本类型及object
      nullToEmpty(boolean[] array)array为null返回空数组
      类型可为各基本类型及包装类,object
      remove(boolean[] array, int index)移除指定索引元素;
      类型可为各基本类型,object及泛型
      removeAll(boolean[] array, int… indices)移除多个指定索引元素;
      类型可为各基本类型,object及泛型
      removeAllOccurrences(boolean[] array, boolean element)移除所有指定元素的元素;
      类型可为各基本类型及泛型
      removeElement(boolean[] array, boolean element)移除第一个指定元素的元素;
      类型可为各基本类型及泛型
      removeElements(boolean[] array, boolean… values)移除多个指定元素的元素(第一个);
      类型可为各基本类型及泛型
      reverse(boolean[] array)反转,可指定反转范围
      类型可为各基本类型及object
      shift(boolean[] array, int o)后端o元素移动到前端,可指定反转范围
      类型可为各基本类型及object
      shuffle(boolean[] array)元素随机排序,可传入参数Random
      类型可为各基本类型及object
      subarray(boolean[] array, int start, int end)截取数组
      类型可为各基本类型及泛型
      swap(boolean[] array, int o1, int o2)元素交换位置,o1与o2为交换元素索引.可添加参数len,交换o1与o2索引后长度为len的位置
      类型可为各基本类型及object
      toArray(T… items)转换为数组
      toMap(Object[] array)转换为map集合
      toObject(boolean[] array)基础类型转包装类;类型可为各基本类型
      toPrimitive(Boolean[] array)包装类转基础类型,可设置默认值
      toString(Object array)数组转字符串
      toStringArray(Object[] array)object数组转字符串数组,可设置对象为空时的默认值
    • DateUtils

      方法描述
      isSameDay(Date date1, Date date2)判断两日期是否是同一天
      也可判断两个日历对象Calendar
      isSameInstant(Date date1, Date date2)判断两日期是否一致
      也可判断两个日历对象Calendar
      isSameLocalTime(Calendar c1, Calendar c)判断是否是相同的当地时间
      parseDate(String str, String… ps)宽松的日期解析,参数可设置Locale地区
      例如:2020-09-33,解析出来为2020-10-03
      parseDateStrictly(String str, String… parsePatterns)严格的日期解析,参数可设置Locale地区
      不符合的日期会抛异常
      addYears(Date date, int num)修改年,num为正数增加,负数则减少,类似方法:addMonths,addWeeks,addDays,addHours,addMinutes,addSeconds,addMilliseconds
      setYears(Date date, int num)设置年,num为正整数,类似方法:setMonths,setDays,setHours,setMinutes,setSeconds,setMilliseconds
      toCalendar(Date date)日期转日历,可设置时区TimeZone
      round(Date date, int field)舍入日期;field为要舍入的单位,如:Calendar.YEAR
      date可为日期Calendar
      truncate(Date date, int field)截取日期,同round方法,就是不会四舍五入
      ceiling(Date date, int field)截取日期,同round方法,就是会”进1“,例如设置年,就是下一年
      iterator(Date focus, int r)获取日期迭代器;r为范围样式,DateUtils.RANGE_WEEK_SUNDAY
      focus可为日期Calendar
      getFragmentInMilliseconds(Date date, int fragment)取指定日期中从指定位置起的毫秒数,
      date可为日期Calendar
      fragment可为Calendar.MONDAY 类似方法有
      getFragmentInSeconds,getFragmentInMinutes,
      getFragmentInHours,getFragmentInDays,
      truncatedEquals(Date date1, Date date2, int field)判断截取的日期是否相等
      truncatedCompareTo(Date date1, Date date2, int field)比较截取的日期大小
    • 5

  3. commons-logging 引入

    • 引入log对象

      Log logger = LogFactory.getLog(Main.class);
      
    • 方法

      方法描述
      debug(Object var1, Throwable var2)输出日志,参数var2可选;其他方法:
      debug(调试),info(消息), error(错误),
      fatal(失败),warn(警告),trace(追踪)
      isFatalEnabled();判断是否开启某级别的日志;其他方法:
      isErrorEnabled,isWarnEnabled,isInfoEnabled,
      isDebugEnabled,isTraceEnabled
    • 配置

  4. commons-math3 引入

    • 数学运算

      • FastMath

        方法描述
        addExact(int a, int b)加法计算
        subtractExact(int a, int b)减法计算
        floorDiv(int a, int b)除法计算(向下取整)
        multiplyExact(int a, int b)乘法计算
        floorMod(int a, int b)向下取模
        abs(int x)绝对值
        sqrt(double a)获取a的平方根
        cbrt(double x)获取x的立方根
        hypot(double x, double y)获取(x*x+y*y)的平方根
        exp(double x)e为底的指数
        expm1(double x)exp(x) -1
        log(double base, double x)求对数
        log1p(double x)log(x+1)
        log10(double x)10 为底的对数
        pow(double x, double y)求x的y次方
        scalb(float f, int n)以2的幂缩放自变量, f*2^n
        signum(double a)负数返回-1;正数返回1;零返回0
        nextUp(double a)返回 f 和正无穷大之间与 f 相邻的浮点值
        nextDown(double a)返回 f 和负无穷大之间与 f 相邻的浮点值
        nextAfter(double f, double d)返回参数x在参数y方向上可以表示的最接近的数值,
        若x等于y,则返回x
        copySign(double magnitude, double sign)
        floor(double x)向下取整
        ceil(double x)向上取整
        rint(double x)四舍六入,五取偶
        round(double x)四舍五入
        min(int a, int b)最小值
        max(int a, int b)最大值
        random()随机数
        IEEEremainder(double d1, double d2)返回一指定数字被另一指定数字相除的余数
        注:d1-该余数正好被d2整除
        toIntExact(long n)long转int
        incrementExact(int n)自增(加1)
        decrementExact(int n)自减(减1)
        getExponent(double d)获取参数的无偏指数
        sin(double x)获取角的正弦值,x为角度
        cos(double x)获取角的余弦值,x为角度
        tan(double x)获取角的正切值,x为角度
        asin(double x)获取正弦值所对应角度,x为正弦值
        acos(double x)获取余弦值所对应角度,x为余弦值
        atan(double x)获取正切值所对应角度,x为正切值
        atan2(double y, double x)获取两数的正切值
        cosh(double x)获取双曲角的双曲余弦值
        sinh(double x)获取双曲角的双曲正弦值
        tanh(double x)获取双曲角的双曲正切值
        acosh(double a)获取双曲余弦值所对应角度
        asinh(double a)获取双曲正弦值所对应角度
        atanh(double a)获取双曲正切值所对应角度
        toRadians(double x)角度转弧度
        toDegrees(double x)弧度转角度
        ulp(double x)一个单位的最后的地方(浮点数)
    • 数据统计

      • StatUtils (标准统计工具类)
      方法描述
      sum(double[] values)计算一组数值的和,
      可设置begin, length参数限制计算范围
      sumSq(double[] values)计算一组数值的平方和
      可设置begin, length参数限制计算范围
      product(double[] values)计算一组数值的乘积
      可设置begin, length参数限制计算范围
      sumLog(double[] values)计算一组数据的对数求和
      可设置begin, length参数限制计算范围
      mean(double[] values)计算一组数据的平均值
      可设置begin, length参数限制计算范围
      geometricMean(double[] values)计算一组数据的几何平均数
      可设置begin, length参数限制计算范围
      variance(double[] values)计算一组数据的方差
      可设置mean平均值,begin, length参数限制计算范围
      populationVariance(double[] values)计算一组数据的总体方差
      可设置mean平均值,begin, length参数限制计算范围
      max(double[] values)计算一组数据的最大值
      可设置begin, length参数限制计算范围
      min(double[] values)计算一组数据的最小值
      可设置begin, length参数限制计算范围
      percentile(double[] values, double p)获取一组数据的百分位数
      可设置begin, length参数限制计算范围
      sumDifference(double[] s1, double[] s2)计算两组数据的和差,注s1与s2长度需一致
      meanDifference(double[] s1, double[] s2)计算两组数据的平均差,注s1与s2长度需一致
      varianceDifference(double[] s1, double[] s2,
      double meanDifference)
      计算两组数据的方差差,注s1与s2长度需一致
      normalize(double[] sample)一组数据标准化处理
      mode(double[] sample)获取一组数据的众数
      可设置begin, length参数限制计算范围
      • Median (中位数)
      方法(非静态方法)描述
      evaluate(double[] values)获取一组数据中位数
      • StandardDeviation(标准差)
      方法(非静态方法)描述
      evaluate(double[] values)计算一组数据标准差
      可设置mean平均值,begin, length参数限制计算范围
      • Frequency(频率分布)
      方法(非静态方法)描述
      addValue(int v)设置值,参数可为int,long,char数字
      incrementValue(int v, long num)设置num个v值,参数可为int,long,char数字
      clear()清空频率信息
      valuesIterator()获取所有值的迭代器
      entrySetIterator()获取所有值信息的迭代器
      getSumFreq()获取数字总个数
      getCount(int v)获取v出现的个数,参数可为int,long,char数字
      getUniqueCount()获取不同的数字总个数
      getPct(int v)获取v所占的百分百,参数可为int,long,char数字
      getCumFreq(int v)小于等于v的数的个数,参数可为int,long,char数字
      getCumPct(int v)小于等于v的数所占比例,参数可为int,long,char数字
      getMode()获取众数
      merge(Frequency other)合并
    • 矩阵

      • MatrixUtils (工具类)

        方法描述
        createRealMatrix(int rows, int columns)创建一个空矩阵
        参数可为二维数组(非空矩阵)
        createFieldMatrix(Field<T> field, int rows, int columns)创建一个字段矩阵
        参数可为二维数组(非空矩阵)
        createRealIdentityMatrix(int dimension)创建一个行列相等,
        并且行等于列的位置默认为1,其他为0的矩阵
        createFieldIdentityMatrix(Field<T> field, int dimension)同上
        createRealDiagonalMatrix(double[] diagonal)创建一个行列相等,
        并且行等于列的位置diagonal各值,其他为0的矩阵
        createFieldDiagonalMatrix(T[] diagonal)同上
        createRealVector(double[] data)创建有个向量
        createFieldVector(T[] data)创建有个字段向量
        createRowRealMatrix(double[] rowData)创建一个单行矩阵
        createRowFieldMatrix(T[] rowData)创建一个单行字段矩阵
        createColumnRealMatrix(double[] columnData)创建一个单列矩阵
        createColumnFieldMatrix(T[] columnData)创建一个单列字段矩阵
        checkSymmetric(RealMatrix matrix, double eps)检验矩阵是否对称,不对称抛异常
        isSymmetric(RealMatrix matrix, double eps)判断矩阵是否对称,
        checkMatrixIndex(AnyMatrix m, int row, int column)检验矩阵行列是否有效,无效抛异常
        checkRowIndex(AnyMatrix m, int row)检验矩阵行是否有效,无效抛异常
        checkColumnIndex(AnyMatrix m, int column)检验矩阵列是否有效,无效抛异常
        checkSubMatrixIndex(AnyMatrix m, int startRow,
        int endRow, int startColumn, int endColumn)
        检验矩阵指定范围行列是否有效,无效抛异常;参数也可为指定的行列两数组
        checkAdditionCompatible(AnyMatrix left, AnyMatrix right)检验两矩阵是否可相加,无可抛异常
        checkSubtractionCompatible(AnyMatrix left, AnyMatrix right)检验两矩阵是否可相减,无可抛异常
        checkMultiplicationCompatible(AnyMatrix left, AnyMatrix right)检验两矩阵是否可相乘,无可抛异常
        fractionMatrixToRealMatrix(FieldMatrix<Fraction> m)分数矩阵转矩阵
        bigFractionMatrixToRealMatrix(FieldMatrix<BigFraction> m)大分数矩阵转矩阵
        serializeRealVector(RealVector vector, ObjectOutputStream oos)序列化向量
        deserializeRealVector(Object instance, String fieldName, ObjectInputStream ois)反序列化向量
        serializeRealMatrix(RealMatrix matrix, ObjectOutputStream oos)序列化矩阵
        deserializeRealMatrix(Object instance, String fieldName, ObjectInputStream ois)反序列化矩阵
        solveLowerTriangularSystem(RealMatrix rm, RealVector b)下三角矩阵系统
        solveUpperTriangularSystem(RealMatrix rm, RealVector b)上三角矩阵系统
        blockInverse(RealMatrix m, int splitIndex)
        inverse(RealMatrix matrix)可设置阈值threshold
      • RealMatrix(矩阵)

        方法(非静态方法)描述
        add(RealMatrix var1)矩阵加法
        subtract(RealMatrix var1)矩阵减法
        scalarAdd(double var1)整体加var1
        scalarMultiply(double var1)整体减var1
        multiply(RealMatrix var1)矩阵乘法
        preMultiply(RealMatrix var1)矩阵乘法,与multiply相反
        参数可为数组或向量
        power(int var1)矩阵次方运算
        getData()获取矩阵数据
        getNorm()矩阵取模
        getFrobeniusNorm()
        getSubMatrix(int var1, int var2, int var3, int var4)通过行列开始结束索引获取子矩阵
        参数可为两个数组,指定行列索引
        copySubMatrix(int var1, int var2, int var3, int var4, double[][] var5)复制矩阵区域数据到var5
        参数可为两个数组,指定行列索引
        setSubMatrix(double[][] var1,int row, int column)在指定行列处设置数据var1
        getColumnMatrix(int var1)获取指定列的矩阵
        setColumnMatrix(int var1, RealMatrix var2)设置指定列的矩阵
        getRowVector(int var1)获取指定列的行向量
        setRowVector(int var1, RealVector var2)设置指定列的行向量
        getColumnVector(int var1)获取指定列的列向量
        setColumnVector(int var1, RealVector var2)设置指定列的列向量
        getRow(int var1)获取指定行的数据
        setRow(int var1, double[] var2)设置指定行的数据
        getColumn(int var1)获取指定列的数据
        setColumn(int var1, double[] var2)设置指定列的数据
        getEntry(int var1, int var2)获取指定行列处的位置
        setEntry(int var1, int var2, double var3)设置指定行列处的位置
        addToEntry(int var1, int var2, double var3)指定位置数据加var3
        multiplyEntry(int var1, int var2, double var3)指定位置数据乘var3
        transpose()行列转换
        getTrace()获取行列索引相等位置数据之和
        operate(double[] var1)获取每行数据乘var1对应索引的和
        walkInRowOrder(RealMatrixChangingVisitor var1)按行排序
        walkInColumnOrder(RealMatrixChangingVisitor var1)按列排序
        walkInOptimizedOrder(RealMatrixChangingVisitor var1)优化排序
      • RealVector(向量)

        方法描述
        getDimension()获取元素数量
        getEntry(int var1)获取指定索引处数据
        setEntry(int var1, double var2)设置指定索引处数据
        addToEntry(int index, double increment)给指定位置数加increment
        append(double var1)后面最加元素,参数可为向量对象
        getSubVector(int var1, int var2)获取子向量
        setSubVector(int var1, RealVector var2)设置子向量
        isNaN()判断是否是NaN
        isInfinite()判断是否是无限的
        add(RealVector v)向量加法
        subtract(RealVector v)向量减法
        mapAdd(double d)获取各元素加d的向量
        mapAddToSelf(double d)获取各元素加d的向量,自身也加d
        copy()复制向量
        dotProduct(RealVector v)获取向量点积
        cosine(RealVector v)获取向量的cos值
        ebeDivide(RealVector var1)向量除法
        ebeMultiply(RealVector var1)向量乘法
        getDistance(RealVector v)向量之间的距离
        getNorm()向量取模
        getL1Norm()向量的值相加
        getLInfNorm()
        getL1Distance(RealVector v)
        getLInfDistance(RealVector v)
        getMinIndex()获取最小索引
        getMinValue()获取最小值
        getMaxIndex()获取最大索引
        getMaxValue()获取最大值
        mapMultiply(double d)获取各元素乘d的向量
        mapMultiplyToSelf(double d)获取各元素加d的向量,自身也乘d
        mapSubtract(double d)获取各元素减d的向量
        mapSubtractToSelf(double d)获取各元素减d的向量,自身也减d
        mapDivide(double d)获取各元素除d的向量
        mapDivideToSelf(double d)获取各元素除d的向量,自身也除d
        outerProduct(RealVector v)转为矩阵,v第一行,当前向量为第一列
        其他位置为个行列的积
        projection(RealVector v)在v向量上的投影向量
        set(double value)所有值都置为value
        toArray()转为数组
        unitVector()获取单位向量
        unitize()转为单位向量
        iterator()获取迭代器
        map(UnivariateFunction function)返回各元素进行计算处理的向量
        mapToSelf(UnivariateFunction function)返回各元素进行计算处理的向量,自身也乘处理
        combine(double a, double b, RealVector y)合并向量
        combineToSelf(double a, double b, RealVector y)合并向量,自身也乘处理
        walkInDefaultOrder(RealVectorPreservingVisitor v)默认排序
        walkInOptimizedOrder(RealVectorPreservingVisitor v)优化排序
        unmodifiableRealVector(final RealVector v)获取不可修改向量
      • Field(字段)

        实现类描述
        BigFractionField.getInstance()大分数
        FractionField.getInstance()分数
        BigRealField.getInstance()大实数
        ComplexField.getInstance()复杂数
        Decimal64Field.getInstance()十进制数
      • UnivariateFunction(单变量函数)

        实现类描述
        Constant(double c)常量函数
        Add()加法函数
        Subtract()减法函数
        Multiply()乘法函数
        Divide()除法函数
        Minus()相反数函数
        Max()最大函数
        Min()最小函数
        Identity()恒等函数
        Inverse()倒数函数
        Log()对数函数
        Log1p()对数函数,Log1p(x)=Log(x+1)
        Log10()以10为底数对数函数
        Logit()Logit(x)=Log(x/(1-x))
        Exp()e为底的指数函数
        Expm1()e为底的指数减1函数
        Pow()次方函数
        Power(double p)次方函数
        Sqrt()平方根函数
        Cbrt()立方根函数
        Abs()绝对值函数;
        Ceil()向上取整
        Floor()向下取整
        Rint()五舍六入取整
        Cos()余弦函数
        Acos()反余弦函数
        Cosh()双曲余弦函数
        Acosh()反双曲余弦函数
        Sin()正弦函数
        Asin()反正弦函数
        Sinh()双曲正弦函数
        Asinh反双曲正弦函数
        Sinc(boolean normalized)辛格函数
        Tan()正切函数
        Tanh()双曲正切函数
        Atan()反正切函数
        Atan2()两个变量反正切函数
        Atanh()反双曲正切函数
        Gaussian(double norm, double mean, double sigma)高斯函数
        HarmonicOscillator(double amplitude,
        double omega, double phase)
        归一化径向波函数
        Logistic(double k, double m, double b,
        double q, double a, double n)
        Logistic函数
        Sigmoid(double lo, double hi)激活函数
        Signum()符号函数,负数返回-1,正数返回1,零返回0
        StepFunction(double[] x, double[] y)跃阶函数
        Ulp()一个单位的最后的地方(浮点数)
  5. commons-collections4 引入

    • CollectionUtils

      方法描述
      emptyCollection()获取空集合
      emptyIfNull(Collection collection)集合为null时返回空集合
      union(Iterable<? extends O> a, Iterable<? extends O> b)把b集合元素在a中没有的添加到a集合中
      intersection(Iterable<? extends O> a, Iterable<? extends O> b)获取a,b集合公共元素
      disjunction(Iterable<? extends O> a, Iterable<? extends O> b)把b集合元素在a中没有的添加到a集合中,并去除a,b集合公共元素
      subtract(Iterable<? extends O> a, Iterable<? extends O> b)获取a集合中有但b集合中没有的元素
      containsAll(Collection<?> a, Collection<?> b)判断b集合元素是否都在a集合中
      containsAny(Collection<?> a, Collection<?> b)判断a,b集合是否有公共元素
      getCardinalityMap(Iterable<? extends O> coll)获取每个元素个数的map集合
      isSubCollection(Collection<?> a, Collection<?> b)判断a是否是b的子集
      isProperSubCollection(Collection<?> a, Collection<?> b)判断a是否是b的子集,且元素个数不能相同
      isEqualCollection(Collection<?> a, Collection<?> b)判断两集合元素是否一致
      filter(Iterable collection, Predicate<? super T> predicate)集合元素过滤
      filterInverse(Iterable collection, Predicate<? super T> predicate)集合元素反向过滤
      transform(Collection/ collection,
      Transformer<? super C, ? extends C> transformer)
      处理每个集合元素
      select(Iterable<? extends O> inputCollection,
      Predicate<? super O> predicate)
      查询元素
      selectRejected(Iterable<? extends O> inputCollection,
      Predicate<? super O> predicate)
      查询元素,与select相反
      collect(Iterable inputCollection,
      Transformer<? super I, ? extends O> transformer)
      转换集合
      addIgnoreNull(Collection collection, T object)添加元素,忽略NUll值
      addAll(Collection a, Iterable<? extends C> b)把b中元素添加到a中
      get(Object object, int index)获取指定索引位置元素
      size(Object object)获取集合/数组大小
      sizeIsEmpty(Object object)判断集合/数组大小是否为空
      isEmpty(Collection<?> coll)判断集合是否为空
      isNotEmpty(Collection<?> coll)判断集合是否为不为空
      reverseArray(Object[] array)反转数组
      isFull(Collection<? extends Object> coll)判断集合数量是否为空
      maxSize(Collection<? extends Object> coll)获取集合最大数量
      collate(Iterable<? extends O> a, Iterable<? extends O> b)获取两集合的所有元素集合
      permutations(Collection collection)获取集合元素的所有组合
      retainAll(Collection a, Collection<?> b)保留a中所有b所含有元素
      removeAll(Collection a, Collection<?> b)移除a中所有b中所含有元素
      predicatedCollection(Collection collection,
      Predicate<? super C> predicate)
      获取谓词集合
      transformingCollection(Collection collection,
      Transformer<? super E, ? extends E> transformer)
      转变集合
      extractSingleton(Collection collection)转换为单个元素,集合元素大于1报错
    • PredicateUtils(集合过滤元素类工具)

      描述
      exceptionPredicate()异常
      truePredicate()所有元素
      falsePredicate()排除所有元素
      nullPredicate()为空的元素
      notNullPredicate()非空的元素
      equalPredicate(T value)equal判断元素
      identityPredicate(T value)= 判断元素
      instanceofPredicate(Class<?> type)判断类型
      uniquePredicate()唯一元素(去重)
      invokerPredicate(String methodName)执行对象元素方法过滤
      andPredicate(Predicate<? super T> predicate1,
      Predicate<? super T> predicate2)
      合并过滤条件
      allPredicate(Predicate<? super T>… predicates)合并多个过滤条件
      orPredicate(Predicate<? super T> predicate1,
      Predicate<? super T> predicate2)
      逻辑’或’处理两个过滤条件
      anyPredicate(Predicate<? super T>… predicates)逻辑’或’处理多个过滤条件
      eitherPredicate(Predicate<? super T> predicate1,
      Predicate<? super T> predicate2)
      逻辑’或’处理两个过滤条件,一个条件不成立过滤掉数据
      onePredicate(Predicate<? super T>… predicates)逻辑’或’处理多个过滤条件,一个条件不成立过滤掉数据
      neitherPredicate(Predicate<? super T> predicate1,
      Predicate<? super T> predicate2
      逻辑’或’处理两个过滤条件,一个条件不成立过滤掉数据
      nonePredicate(Predicate<? super T>… predicates)逻辑’或’处理两个过滤条件,一个条件不成立过滤掉数据
      notPredicate(Predicate<? super T> predicate)逻辑’非’
      asPredicate(Transformer<? super T, Boolean> transformer)转换器过滤
      nullIsExceptionPredicate(Predicate<? super T> predicate)有null元素抛异常
      nullIsFalsePredicate(Predicate<? super T> predicate)过滤掉null元素
      nullIsTruePredicate(Predicate<? super T> predicate)过滤得null元素
      transformedPredicate(Transformer<? super T, ? extends T> t,
      Predicate<? super T> predicate)
      转换并过滤
  6. commons-codec 引入

    • Base64

              Base64 base64 = new Base64();
              //Base64加密
              byte[] encode = base64.encode("你是一个好人".getBytes());
              System.out.println(new String(encode));
              //Base64解密,参数可直接为加密字符串
              Object decode = base64.decode(encode);
              System.out.println(new String((byte[])decode));
              //加密直接获取字符串,与encodeAsString方法一样
              String str = base64.encodeAsString("你是一个好人".getBytes());
              System.out.println(str);
      
    • MD5

              String md5Str = DigestUtils.md5Hex("ssadasd");
              System.out.println(md5Str);
      
    • SHA

              System.out.println(DigestUtils.sha1Hex("12312"));
              System.out.println(DigestUtils.sha256Hex("12312"));
              System.out.println(DigestUtils.sha384Hex("12312"));
              System.out.println(DigestUtils.sha512Hex("12312"));
      
    • URLCodec

              URLCodec codec = new URLCodec();
              //URL编码,可编码字节数组
              String str1 = codec.encode("测试", "utf-8");
              System.out.println(str1);
              URL解码,可解码字节数组
              String str2 = codec.decode(str1, "utf-8");
              System.out.println(str2);
      
    • BCodec

              BCodec bCodec=new BCodec();
              //B编码器编码
              String str1 = bCodec.encode("1223asadd爱爱爱");
              //B编码器解码码
              String str2 = bCodec.decode(str1);
              System.out.println(str1);
              System.out.println(str2);
      
    • QCodec

              QCodec qCodec=new QCodec();
              //Q编码器编码
              String str1 = qCodec.encode("1223asadd爱爱爱");
              //Q编码器解码码
              String str2 = qCodec.decode(str1);
              System.out.println(str1);
              System.out.println(str2);
      
    • Hex

             //Hex编码为字符串
              String hexString = Hex.encodeHexString("你是好人".getBytes("UTF-8"));
              System.out.println(hexString);
              //Hex编码为字符数组,,第二个参数意思是是否全部转换成小写
              char[] encodeHex = Hex.encodeHex("你是好人".getBytes(), true);
              System.out.println(new String(encodeHex));
              //Hex解码,char数组型的
              byte[] decodeHex = Hex.decodeHex(encodeHex);
              System.out.println(new String(decodeHex));
              //字符串类型的,该方法要求传入的是char[]
              byte[] decodeHex2 = Hex.decodeHex(hexString.toCharArray());
              System.out.println(new String(decodeHex2));
      
    • Metaphone,Soundex ,RefinedSoundex

             //通常是用在类似音比对
              for (int i = 0; i < 2; i++) {
                  String str = (i == 0) ? "tea" : "teacher";
                  Metaphone metaphone = new Metaphone();
                  RefinedSoundex refinedSoundex = new RefinedSoundex();
                  Soundex soundex = new Soundex();
                  //建立出相同的key给发音相似的单字, 比 Soundex 还要准确,长度不固定
                  System.out.println(metaphone.encode(str));
                  //精确的Soundex,由第一个英文字加上多个个数字组成
                  System.out.println(refinedSoundex.encode(str));
                  //是固定第一个英文字加上3个数字
                  System.out.println(soundex.encode(str));
              }
      
  7. commons-beanutils 引入

    • MethodUtils

      方法描述
      clearCache()清空方法缓存
      getAccessibleMethod(Class<?> clazz, String methodName, Class<?>[] parameterTypes)返回一个可访问的方法
      getMatchingAccessibleMethod(Class<?> clazz, String methodName, Class<?>[] parameterTypes)查找与方法名及参数匹配的可访问方法
      getPrimitiveType(Class<?> wrapperType)获得包装类的基本数据类型
      getPrimitiveWrapper(Class<?> primitiveType)获得基本数据类型的包装类型
      invokeExactMethod(Object object, String methodName, Object[] args, Class<?>[] parameterTypes)执行方法
      invokeExactStaticMethod(Class<?> objectClass, String methodName, Object[] args, Class<?>[] parameterTypes)执行静态方法
      invokeMethod(Object object, String methodName, Object[] args, Class<?>[] parameterTypes)执行方法
      invokeStaticMethod(Class<?> objectClass, String methodName, Object[] args, Class<?>[] parameterTypes)执行静态方法
      isAssignmentCompatible(Class<?> parameterType, Class<?> parameterization)确定是否可以使用一个类型作为方法调用参数
      setCacheMethods(boolean cacheMethods)设置缓存方法
      toNonPrimitiveClass(Class<?> clazz)如果是简单数据类型则返回对应的包装类,否则返回本身
    • ConstructorUtils

      方法描述
      getAccessibleConstructor(Class<T> klass, Class<?>[] parameterTypes)获得含有指定类型形参的构造方法
      invokeConstructor(Class<T> klass, Object[] args, Class<?>[] parameterTypes)执行构造方法
      invokeExactConstructor(Class<T> klass, Object[] args, Class<?>[] parameterTypes)执行构造方法
    • PropertyUtils

      方法描述
      addBeanIntrospector(BeanIntrospector introspector)添加一个BeanIntrospector
      clearDescriptors()清空所有属性描述信息
      copyProperties(Object dest, Object orig)复制属性
      describe(Object bean)属性描述
      getIndexedProperty(Object bean, String name, int index)指定索引属性值
      getMappedProperty(Object bean, String name, String key)获得Map属性中指定键对应的值
      getNestedProperty(Object bean, String name)获得嵌套属性
      getProperty(Object bean, String name)获得属性
      getPropertyDescriptor(Object bean, String name)获得属性描述
      getPropertyDescriptors(Class<?> beanClass)获得属性描述
      getPropertyType(Object bean, String name)获得属性类型
      getReadMethod(PropertyDescriptor descriptor)返回一个可访问的属性的getter方法
      getSimpleProperty(Object bean, String name)返回属性值
      getWriteMethod(PropertyDescriptor descriptor)返回一个可访问的属性的setter方法
      isReadable(Object bean, String name)判断是否为可读属性
      isWriteable(Object bean, String name)判断是否为可写属性
      removeBeanIntrospector(BeanIntrospector introspector)移除BeanIntrospector
      resetBeanIntrospectors()重置BeanIntrospector
      setIndexedProperty(Object bean, String name, int index, Object value)设置指定索引属性值
      setIndexedProperty(Object bean, String name, Object value)设置指定索引属性值
      setMappedProperty(Object bean, String name, Object value)设置Map属性的值
      setMappedProperty(Object bean, String name, String key, Object value)设置Map属性指定键的值
      setNestedProperty(Object bean, String name, Object value)设置嵌套属性的值
      setProperty(Object bean, String name, Object value)设置属性值
      setSimpleProperty(Object bean, String name, Object value)设置属性值
    • BeanUtils

      方法描述
      cloneBean(Object bean)克隆对象
      copyProperties(Object dest, Object orig)复制属性
      createCache()创建缓存
      describe(Object bean)描述
      getArrayProperty(Object bean, String name)返回指定属性的值,作为字符串数组返回
      getIndexedProperty(Object bean, String name, int index)获取指定索引位置对象作为字符串返回
      getMappedProperty(Object bean, String name, String key)获得Map属性中指定键的值作为字符串返回
      getNestedProperty(Object bean, String name)获得嵌套属性作为字符串返回
      getProperty(Object bean, String name)获得属性值作为字符串返回
      getSimpleProperty(Object bean, String name)获得属性值作为字符串返回
      populate(Object bean, Map<String,? extends Object> properties)将Map中的数据注入到Bean对象中
      setProperty(Object bean, String name, Object value)设置属性值
    • ConvertUtils

      方法描述
      convert(Object value)将对象转换为字符串
      convert(Object value, Class<?> targetType)将对象转换为指定数据类型对象
      convert(String[] values, Class<?> clazz)将数组转换为指定数据类型对象
      convert(String value, Class<?> clazz)将字符串转换为指定数据类型对象
      deregister(Class<?> clazz)移除指定类型的转换器,无clazz移除全部
      lookup(Class<?> clazz)查找指定类型的转换器
      lookup(Class<?> sourceType, Class<?> targetType)查找将指定类型转换为另一种类型的转换器
      register(Converter converter, Class<?> clazz)注册转换器
  8. commons-httpclient 引入

    • HttpClient

      操作描述
      .getHttpConnectionManager().getParams()
      .setConnectionTimeout(5000);
      连接主机服务器相关配置
      设置超时时间
      .executeMethod(HttpMethod method);访问http请求
      .setParams(HttpClientParams params);设置HttpClient配置参数
      .setHttpConnectionManager(
      HttpConnectionManager httpConnectionManager);
      设置HttpClient管理配置
    • HttpMethod(常用)

      • GetMethod

        操作描述
        new GetMethod(String url)构造方法
        .getParams()
        .setParameter(HttpMethodParams.SO_TIMEOUT, 10000);
        请求超时时间
        addRequestHeader(String headerName, String headerValue)设置请求头
        .getResponseBodyAsString()获取响应体(字符串)
        .getResponseBodyAsStream()获取响应体(流)
        .getResponseBody()获取响应体(字节数组)
        releaseConnection();释放连接
      • PostMethod

        操作描述
        new PostMethod("");构造方法
        .getParams().setContentCharset(“utf-8”);防止中文乱码
        addParameter(String paramName, String paramValue)添加参数
        .setRequestEntity(entity);设置请求体
    • RequestEntity (请求体)

      • StringRequestEntity

        new StringRequestEntity(String content, String contentType, String charset);
        
      • ByteArrayRequestEntity

        new ByteArrayRequestEntity(byte[] content);
        
      • FileRequestEntity

        new FileRequestEntity(final File file, final String contentType)
        
      • InputStreamRequestEntity

        new InputStreamRequestEntity(InputStream content)
        
      • MultipartRequestEntity

        new MultipartRequestEntity(Part[] parts, HttpMethodParams params)
        
  9. commons-fileupload 引入

    • DiskFileItemFactory

      方法描述
      DiskFileItemFactory(int size, File repo)构造方法,有无参构造
      setDefaultCharset(String pCharset)设置字符集
      setRepository(File dir);设置临时文件存储位置。
      setSizeThreshold(long bytes)设置请求大小阈值,当请求大于该值时,接收到的数据是缓存在磁盘中的,否则直接缓存到内存中。
      setFileCleaningTracker(FileCleaningTracker pTracker)设置临时文件清理跟踪器
    • ServletFileUpload

      方法描述
      ServletFileUpload(FileItemFactory fileItemFactory)构造方法
      setSizeMax(long bytes);设置整个请求的最大值,大于该值时,不允许传送
      setFileMaxSize(long bytes);设置单个文件的最大值,大于该值时,不允许传送
      setHeaderEncoding(String charset);设置读取每个FileItem的头数据的字符编码,不设置时采用request编码,也没有时采用系统默认编码
      serProgressListener(ProgressListener pListener);设置上传进度监听器
      parseRequest(RequestContext ctx)解析请求为文件列表
    • FileItem

      方法描述
      getContentType();获取单个Item的ContentType
      getFieldName();获取Item的field名
      getFieldName();获取Item的field名
      getSize();获取Item的大小
      get();将File转换成字节数组返回
      isInMemory();File目前是否存在内存中
      isFormField();是否是表单域
      getInputStream();获取输入流,用于读取File
  10. commons-configuration 引入

    • Properties配置文件

      PropertiesConfiguration conf= new PropertiesConfiguration("a.properties");
      // 所有键的迭代器
      Iterator<String> iterator = configuration.getKeys();
      //获取配置文件值
      System.out.println(configuration.getString("userId"));
      
    • xml

      //报错需添加 commons-collections
      XMLConfiguration configuration = new XMLConfiguration("a.xml");
      //获取根元素名
      System.out.println(configuration.getRootElementName());
      //根目录的id属性
      System.out.println(configuration.getProperty("[@id]"));
      //获取display-name标签值
      System.out.println(configuration.getProperty("display-name"));
      //获取servlet节点下的子节点对象
      SubnodeConfiguration servlet = configuration.configurationAt("servlet");
      System.out.println(servlet.getString("servlet-name"));
      System.out.println(servlet.getString("servlet-class"));
      //获取servlet节点下的子节点对象(分层)
      List<HierarchicalConfiguration> list = configuration.configurationsAt("servlet");
      list.forEach(e->{
           System.out.println(e.getString("servlet-name"));
           System.out.println(e.getString("servlet-class"));
      });
      
  11. commons-text 引入

    • StringSubstitutor

      方法(静态)描述
      replace(Object s, Map<String, V> m,
      String prefix, String suffix)
      source替换map中定义的字段
      prefix与suffix为前后缀,可不设,默认为${和}
      map可换为Properties
      createInterpolator();获取一个实现类
      replaceSystemProperties(final Object source)替换系统配置属性
    • JaccardSimilarity

      方法描述
      apply(CharSequence left, CharSequence right)获取两字符串的jaccard相似度
    • CosineSimilarity

      方法描述
      cosineSimilarity(final Map<CharSequence, Integer> leftVector,
      final Map<CharSequence, Integer> rightVector)
      计算余弦相似度
  12. commons-net 引入

    • FTPClient

      FTPClient ftpClient = new FTPClient();//创建客户端
      ftpClient.setControlEncoding("uft-8");//设置编码集
      ftpClient.connect("addr", 8080);//设置地址和端口号
      ftpClient.login("username", "password");//设置用户及密码
      //将执行的FTP命令输出到控制台
      ftpClient.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
      ftpClient.setDataTimeout(120000);//设置超时时间
      ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);//设置传输的文件类型, 以二进制方式传输
      int replyCode = ftpClient.getReplyCode();//响应状态 200 成功
      boolean connected = ftpClient.isConnected();//判断是否连接
      boolean available = ftpClient.isAvailable();//判断是否有效
      
      //获取文件,无参获取所有文件,参数为目录获取目录下文件,参数为文件则获取该文件
      FTPFile[] ftpFiles = ftpClient.listFiles("FTP文件地址");
      ftpClient.changeWorkingDirectory("工作目录");//更换FTP工作目录
      //文件下载到本地,加载之前 FTP工作目录 必须切换到文件所在目录
      ftpClient.retrieveFile("文件名", new FileOutputStream("下载目录"));
      ftpClient.makeDirectory("目录名");//创建目录
      ftpClient.changeToParentDirectory();//工作目录移到上级目录
      ftpClient.storeFile("文件名", new FileInputStream("文件路径"));//文件上传
      ftpClient.deleteFile("文件名");
      ftpClient.removeDirectory("目录名");
      String[] name = ftpClient.listNames("正则表达式");//获取文件名集合,无参所有文件名
      String workingDirectory = ftpClient.printWorkingDirectory();//获取当前工作目录
      ftpClient.setRestartOffset(1);//设置本地文件大小,用于断点续传
      boolean isDo = ftpClient.completePendingCommand();//判断是否有未完成的命令
      
      ftpClient.abort();//中断正在进行的文件传输
      ftpClient.disconnect();//断开连接
      ftpClient.logout();//退出客户端
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郑重其事,鹏程万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值