Android 常用方法

本文提供了一系列实用的Java代码片段,包括验证非法字符、检查手机号格式、获取应用版本信息、检测网络状态、判断字符串是否包含数字或字母、获取及转换文件大小等功能,适用于多种应用场景。
/**
 * Demo class
 *  验证非法字符
 */
public static boolean isSpecialChar(String str) {
    String regEx = "[ `~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r|\t";
    Pattern p = Pattern.compile(regEx);
    Matcher m = p.matcher(str);
    return m.find();
}

 

/**
 * Demo class
 *  是否为正确的手机号
 */
public static String isPhone(String phone) {
    String regex = "^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\\d{8}$";
    if (phone.length() != 11) {
        return "手机号应为11位";
    } else {
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(phone);
        boolean isMatch = m.matches();
        if (!isMatch) {
            return "请输入正确的手机号";
        }
        return "";
    }
}
/**
 * Demo class
 *  获取版本名
 */
public static String packageName() {
    PackageManager manager = ContextHolder.context.getPackageManager();
    String name = null;
    try {
        PackageInfo info = manager.getPackageInfo(ContextHolder.context.getPackageName(), 0);
        name = info.versionName;
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    return name;
}

 

/**
 * Demo class
 *  获取版本号
 */
public static int packageCode() {
    PackageManager manager = ContextHolder.context.getPackageManager();
    int code = 0;
    try {
        PackageInfo info = manager.getPackageInfo(ContextHolder.context.getPackageName(), 0);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
            code = (int) info.getLongVersionCode();
        } else {
            code = info.versionCode;
        }
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    return code;
}
/**
 * Demo class
 *检测当的网络(WLAN、3G/2G)状态
 * @return true 表示网络可用
 */
public static boolean isNetworkAvailable(Context context) {
    ConnectivityManager connectivity = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivity != null) {
        NetworkInfo info = connectivity.getActiveNetworkInfo();
        if (info != null && info.isConnected()) {
            // 当前网络是连接的
            if (info.getState() == NetworkInfo.State.CONNECTED) {
                // 当前所连接的网络可用
                return true;
            }
        }
    }
    return false;
}
/**
 * Demo class
 *  判断一个字符串是否含有数字
 */
public static boolean isContainNumber(String company) {
    Pattern p = Pattern.compile("[0-9]");
    Matcher m = p.matcher(company);
    if (m.find()) {
        return true;
    }
    return false;
}
/**
 * Demo class
 *  判断一个字符串是否含有字母
 */
public static boolean judgeContainsStr(String str) {
    String regex=".*[a-zA-Z]+.*";
    Matcher m=Pattern.compile(regex).matcher(str);
    return m.matches();
}
/**
 * 获取文件大小(单位B)
 */
public static long getFileSize(File file){
    long size = 0;
    if (file.exists()) {
        FileInputStream fis = null;
        try {
            fis = new FileInputStream(file);
            size = fis.available();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    } else {

        Log.e("获取文件大小", "文件不存在!");
    }
    return size;
}

/**
 * 转换文件大小
 */
public static String toFileSize(long fileS) {
    DecimalFormat df = new DecimalFormat("#.00");
    String fileSizeString = "";
    String wrongSize = "0B";
    if (fileS == 0) {
        return wrongSize;
    }
    if (fileS < 1024) {
        fileSizeString = df.format((double) fileS) + "B";
    } else if (fileS < 1048576) {
        fileSizeString = df.format((double) fileS / 1024) + "KB";
    } else if (fileS < 1073741824) {
        fileSizeString = df.format((double) fileS / 1048576) + "MB";
    } else {
        fileSizeString = df.format((double) fileS / 1073741824) + "GB";
    }
    return fileSizeString;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值