java strip 字符串_Java 常用字符串操作总结

1. String转ASCII码

public static String stringToAscii(String value) {

StringBuffer sbu = new StringBuffer();

char[] chars = value.toCharArray();

for (int i = 0; i < chars.length; i++) {

if (i <= chars.length - 1) {

int ii = chars[i];

sbu.append(Integer.toHexString(ii));

} else {

sbu.append((int) chars[i]);

}

}

return sbu.toString();

}

2. ASCII码转String

public static String asciiToString(String value) {

if("".equals(value) || value == null){

return "";

}

StringBuffer sBuffer = new StringBuffer();

char[] chars = value.toCharArray();

for (int i = 0; i < chars.length; i = i + 2) {

if (i < chars.length - 1) {

int ii = Integer.valueOf(

Character.toString(chars[i]) + Character.toString(chars[i + 1]), 16);

sBuffer.append((char) (ii));

}

}

return sBuffer.toString();

}

3. 输入流转字节数组

public static String inputStream2Byte(InputStream inputStream) throws IOException {

ByteArrayOutputStream bos = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len = -1;

while ((len = inputStream.read(buffer)) != -1) {

bos.write(buffer, 0, len);

}

bos.close();

return new String(bos.toByteArray(), "UTF-8");

}

4. 输入流转字符串

public static String InputStreamTOString(InputStream in) throws Exception {

ByteArrayOutputStream outStream = new ByteArrayOutputStream();

byte[] data = new byte[1024];

int count = -1;

while ((count = in.read(data, 0, 2048)) != -1)

outStream.write(data, 0, count);

data = null;

return new String(outStream.toByteArray());

}

5. 判断输入是不是包含中文

public static boolean isChinese(char c) {

Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);

if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS

|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B

|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS

|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {

return true;

}

return false;

}

public static boolean isChinese(String strName) {

char[] ch = strName.toCharArray();

for (int i = 0; i < ch.length; i++) {

char c = ch[i];

if (isChinese(c)) {

return true;

}

}

return false;

}

6. 检验子网掩码的合法性:子网掩码转化为二进制之后不能全是1,也不能全是0,必须是连续的1或者连续的0,也就是说1和0不能交替出现。

实现方式,先将4个整数字段按照每八位拼接起来,软后转化为二进制显示方式,使用正则表达式进行匹配。

public static boolean checkMask(String maskStr){

String[] ips = maskStr.split("\\.");

String binaryVal = "";

for (int i = 0; i < ips.length; i++)

{

String binaryStr = Integer.toBinaryString(Integer.parseInt(ips[i]));

Integer times = 8 - binaryStr.length();

for(int j = 0; j < times; j++)

{

binaryStr = "0" + binaryStr; //补齐八位,每次需要进行八位合并

}

binaryVal += binaryStr;

}

Pattern regxPattern = Pattern.compile("^[1]*[0]*$");

if(regxPattern.matcher(binaryVal).matches())

{

return true;

}else {

return false;

}

}

7. 检查IP的合法性,并转化为整数表示

public static boolean validIP(String ip) {

if (ip == null) {

return false;

}

String IP_REGEX = "\\b((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\."

+ "((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\."

+ "((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\."

+ "((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\b";

Pattern ipPattern = Pattern.compile(IP_REGEX);

Matcher matcher = ipPattern.matcher(ip);

return matcher.matches();

}

public static Integer ipString2Int(String strIp){

if(!validIP(strIp)) return null;

int[] ip = new int[4];

String[] ips = strIp.split("\\.");

ip[0] = Integer.parseInt(ips[0]);

ip[1] = Integer.parseInt(ips[1]);

ip[2] = Integer.parseInt(ips[2]);

ip[3] = Integer.parseInt(ips[3]);

return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值