java字符串处理(待补充)

160 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

java把char转换成int char a = ‘1’; String b = String.valueOf(a); int c = Integer.parseInt(b);

把int转为string 方法一:通过包装类来实现 String tranToStr = String.valueOf(num); 方法二:直接通过空字符串+数字的形式转换为字符串 String str= “”+num; 方法三:强制类型转换 String str= (String)num;

把String转为int 方式一:Integer(String s)

Integer i = new Integer("10"); int a = i.intValue() 1 2 方式二:static int parseInt(String s) int b = Integer.parseInt(“20”);

int转字符转int (char)强转

字符串截取 String a = “abcdefg”; subString方法 a.subString(1);//得到字符串“bcdefg”; (从下标1开始到结束,返回新的字符串) a.subString(1,5);//得到字符串“bcde”; (下标1-5,包含1不包含5的新字符串) a.subSequence(1,3);和a.subString(1,3);一样!不过取出来的东西要做强制类型转换成String。 ——来自万能百度网友

大小写码值 大写:

A → 65,B → 66,C → 67,D → 68,E → 69, F → 70,G → 71,H → 72,I → 73,J → 74, K → 75,L → 76,M → 77,N → 78,O → 79, P → 80,Q → 81,R → 82,S → 83,T → 84, U → 85,V → 86,W → 87,X → 88,Y → 89,Z → 90 小写: a → 97,b → 98,c → 99,d → 100,e → 101,f → 102, g → 103,h → 104,i → 105,j → 106,k → 107,l → 108, m → 109,n → 110,o → 111,p→ 112,q → 113,r → 114, s → 115,t → 116,u → 117,v → 118,w → 119,x → 120,y → 121,z → 122

转大小写 ​ System.out.println(test.toUpperCase());//小写转大写 ​ System.out.println(test.toLowerCase());//大写转小写

java 向上或向下取整Math 向上取整用Math.ceil(double a)

向下取整用Math.floor(double a)

正则表达式:Java中replace、replaceAll和replaceFirst函数的用法小结 转自 :www.jb51.net/article/919… 杨元

首先概述一下他们三个的用法:

· replace(CharSequence target, CharSequence replacement) ,用replacement替换所有的target,两个参数都是字符串。

· replaceAll(String regex, String replacement) ,用replacement替换所有的regex匹配项,regex很明显是个正则表达式,replacement是字符串。

· replaceFirst(String regex, String replacement) ,基本和replaceAll相同,区别是只替换第一个匹配项。

接下来有个简单的需求,就是把源字符串中的a替换成\a,代码如下:

System.out.println("abac".replace("a", "\a")); //\ab\ac System.out.println("abac".replaceAll("a", "\a")); //abac System.out.println("abac".replaceFirst("a", "\a")); //abac 1 2 3 replaceAll和replaceFirst要求第一个参数是正则表达式,"a"既能理解成字符串a,也可以理解成正则表达式a,所以第一个参数没问题。

问题就出在第二个参数上,如果读者仔细阅读replaceAll函数的注释,会发现有如下说明

Note that backslashes () and dollar signs ($) in the replacement string may cause the results to be different than if it were being treated as a literal replacement string; see Matcher.replaceAll. Use java.util.regex.Matcher.quoteReplacement to suppress the special meaning of these characters, if desired. 1 由于replaceAll和replaceFirst的第一个参数是正则,所以我们可以在第二个参数中做些小花样,比如有这样一个需求:把源字符串中的a替换成a后边紧邻的字符,代码如下:

System.out.println("abac".replaceAll("a(\w)", "111")); //bbcc System.out.println("abac".replaceFirst("a(\w)", "111")); //bbac 1 2 正则的含义假设读者可以读懂,可以看出,在第二个参数中,可以用符号获取分组的内容,本例中用符号获取分组的内容,本例中用1取到了第一个分组的内容,即a后边紧邻的字符。

对于这里的 (\w) 111 为正则中的用法。

以下为API中解释:

预定义字符类 
. 任何字符(与行结束符可能匹配也可能不匹配) 
\d 数字:[0-9] 
\D 非数字: [^0-9] 
\s 空白字符:[ \t\n\x0B\f\r] 
\S 非空白字符:[^\s] 
\w 单词字符:[a-zA-Z_0-9] 
\W 非单词字符:[^\w] 


边界匹配器 
^ 行的开头 
$ 行的结尾 
\b 单词边界 
\B 非单词边界 
\A 输入的开头 
\G 上一个匹配的结尾 
\Z 输入的结尾,仅用于最后的结束符(如果有的话) 
\z 输入的结尾 


1、()表示分组:将一序列正则表达式看作一个整体; 2、^表示正则开始,$表示正则结束; 3、:表示该位置的字符为冒号;

4、\w相当于a-zA-Z0-9_,匹配单词字符;

5.1,1, 2 … 来引用第一个参数的括号分组的

在java里“\w+|\d+”是什么意思? 意思是匹配所有(边界符除外),所以要对其进行转意,用.表示,然后由于编译器需要,再加个\也就是.这样才能匹配字符串里面出现的"." 。

\w+.的意思就是匹配任何以.接尾的字符串,由于是 w+,所以它不匹配单纯的"."。

\d+这个是由两部分组成的,\ 转义符 加\d 是一个正字表达式,标识所有数字及0-9 之所以要加\是因为在JAVA中一些特殊的符号如[回车]是没有符号代表的,所以需要转义符这个概念,而像回车这类转义符都是由\开始的,那么就出现了第二个问题,如果我要输入的恰恰是\符号怎么办,那么这个问题就还用转义符来解决,所以\的转义符就是\。

有关 .split(regex) 的用法 0, + * 不是有效的模式匹配规则表达式,用"*" “+“转义后即可得到正确的结果。 1、如果用“.”作为分隔的话,必须是如下写法,String.split(”.”),这样才能正确的分隔开,不能用String.split(".");

2、如果用“|”作为分隔的话,必须是如下写法,String.split("|"),这样才能正确的分隔开,不能用String.split("|");

“.”和“|”都是转义字符,必须得加"";

3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如,“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split(“and|or”);