关于 java string转int

页面导航:
→ 正文内容 JAVA中STRING的常用方法
JAVA中STRING的常用方法小结
这篇文章介绍了JAVA中STRING的常用方法,有需要的朋友可以参考一下
一、创建并初始化一个字符串
String b = "hello";
使用构造方法创建并初始化一个字符串
String();//初始化字符串,表示空字符序列
String(value);//利用已存在的字符串常量创建一个新的对象
String (char[] value);//利用一个字符数组创建一个字符串
String(char[] value,int offset,int count);//截取字符数组offset到count的字符创建一个非空串
String(StringBuffer buffer);//利用StringBuffer对象初始化String对象
二、String类主要方法的使用:
1、获取长度 *.length();//这与数组中的获取长度不同,*.
2、比较字符串(1) equals() //判断内容是否相同
(2)compareTo() //判断字符串的大小关系
(3)compareToIgnoreCase(String int) //在比较时忽略字母大小写
(4)== //判断内容与地址是否相同
(5)equalsIgnoreCase() //忽略大小写的情况下判断内容是否相同
如果想对字符串中的部分内容是否相同进行比较,可以用
(6)reagionMatches() //有两种 public boolean regionMatches(int toffset, String other,int ooffset,int len);表示如果String对象的一个子字符串与参数other的一个子字符串是相同的字符序列,则为true.要比较的String 对象的字符串从索引toffset开始,other的字符串从索引ooffset开始,长度为len。
public boolean reagionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len);//用布尔类型的参数指明两个字符串的比较是否对大小写敏感。
三、查找字符串中某个位置的字符
public char charAt(int index);//返回指定索引index位置上的字符,索引范围从0开始
四、查找指定字符串在字符串中第一次或最后一词出现的位置
在String类中提供了两种查找指定位置的字符串第一次出现的位置的方法
(1)public int indexOf(String str);//从字符串开始检索str,并返回第一次出现的位置,未出现返回-1
(2)public int indexOf(String str,int fromIndex);//从字符串的第fromIndex个字符开始检索str
查找最后一次出现的位置有两种方法
(1)public int lastIndexOf(String str);
(2)public int lastIndexOf(String str,int fromIndex);
如果不关心字符串的确切位置则可使用public boolean contains(CharSequence s);
五、检查字符串的起始字符和结束字符
开始的字符串两种方法
(1)public boolean starWith(String prefix,int toffset);//如果参数prefix表示的字符串序列是该对象从索引toffset处开始的子字符串,则返回true
(2)public boolean starWith(String prefix);
结束的字符串方法
public boolean endsWith(String suffix);
六、截取子串
(1)public String subString(int beginIndex);
(2)public String subString(int beginIndex,int endIndex);//返回的字符串是从beginIndex开始到endIndex-1的串
要返回后4位可以这样写Syetem.out.println(*.subString()(*.length()-4));
七、字符串的替换
(1)public String replace(char oldChar,char newChar);
(2)public String replace(CharSequence target,CharSequence replacement);//把原来的etarget子序列替换为replacement序列,返回新串
(3)public String replaceAll(String regex,String replacement);//用正则表达式实现对字符串的匹配
八、字符串的大小写替转换
(1)public String toLowerCase(Locale locale);
(2)public String toLowerCase();
(3)public String toupperCase(Locale locale);
(4)public String toUpperCase();
九、去除字符串首尾空格
十、字符串转换
1、将字符串转换成字符数组
public char[] toCharArray();
2、将字符串转换成字符串数组
public String[] split(String regex);//regex 是给定的匹配
3、将其它数据类型转化为字符串
(1)public static String valueOf(boolean b);
(2)public static String valueOf(char c);
(3)public static String valueOf(int i);
(4)public static String valueOf(long i);
(5)public static String valueOf(float f);
(6)public static String valueOf(double d);
(7)public static String valueOf(char[] data);
(8)public static String valueOf(Object obj);
可变字符串的创建和初始化
public StringBuffer();
public StringBuffer(int caoacity);
StringBuffer类主要方法的使用:
一、获取可变字符串长度
(1)public int length();
(2)public int capacity();
(3)public void setLength(int newLength);
二、比较可变字符串
用String 类的equals()方法比较,但是不同。
类Object中的equals()方法比较的是两个对象的地址是否相等,而不仅仅是比较内容,但是String类在继承Object类的时候重写了equals()方法,只是比较两个对象的内容是否相等
而在StringBuffer类中没有重写Object类的equals()方法,所以比较的是地址和内容。
三、追加和插入字符串
(1)追加 public StringBuffer append(type t);
(2)插入 public StringBuffer insert(int offset,type t);//在offset处加入类型为type的字符串
四、反转和删除字符串
(1)反转 public StringBuffer reverse();
(2)删除 public StringBuffer delete(int start,int end);
五、减少用于可变字符序列的存储空间
public void trimToSize();
六、StringBuffer类转换成String类
public String toString();
您可能感兴趣的文章:
上一篇:下一篇:
最 近 更 新
热 点 排 行
12345678910&&|&&责编:崔宁
在Java中String可以这样声明:String s=
此时如果执行if(s.equlas(&&)){.....}&就会出错,
所以在对String进行判断时,正确的做法应该是:
(点小图查看大图)String&s&=&(点小图查看大图)(点小图查看大图)if(!(s==null)&&&&!(s.eqluals(&&))...{(点小图查看大图)&&&System.out.print(&s值不为null或者空&);(点小图查看大图)}
String&s&=&if(!(s.eqluals(&&)&&&&!(s==null)&){&&&System.out.print(&s值不为null或者空&);}
本文相关搜索java关于String[] str = new String[]{};, java关于String[] str = new St
java关于String[] str = new String[]{}; 问题补充:
在java List中 toArray(参数)
String [] str = list.toArray(new String[]{}); 或直接在程式中定义:String[]str = new String[]{};new String[]后面那个大括号到底什么意思啊? aini3-8-16 java关于String[] str = new String[]{};
大括号的意思是初始化 前面定义的String[]str ,也就是没有内容;但是如果你这样定义String[]str = new String[]{“111”;22222&但是现在大括号里面是空的String[]str = new String[]{}.综上所述,&quot,你可以打印下 str的长度是0;},大括号的作用是初始化;str的长度就为2
数组初始化都带这个大括号。这个问题在百度知道有人早问过了。此人答案(我认同):凡是new 的都在在堆中开辟内存的rt
你定义的是一个静态一维数组
里面是空的(因为你带了{ } 号)不过也有内存 他的内存空间是在堆中的 String
str[ ] = new String[10]你定义的数组
直能说是用来在定义的时候就初始化了数组,也没什么特别的意思。二维数组就是括号里再括号。依次类推
你这么写怎么数组初始化?当然是写在这个大括号里。要不岂不是转换一个空字符串数组。2687人阅读
做JAVA经常会碰到中文乱码问题,还有各种编码的问题,特别是String类的内容需要重新编码的问题。要解决这些问题,必须了解清楚JAVA对于字符串是怎么处理的。
&&&&1,&字符&是由数字来表示的&先来重新了解一下计算机是如何处理&字符&的,这个原理是大家必须记住的,特别是在用JAVA写程序的时
候,万万不可模糊。我们知道,计算机把任何东西都用数字来表示,&字符&也不例外。比如我们要显示一个阿拉伯数字&3&,在我们的PC里,其实并不是仅仅
用一个数字3来代表我们要写的&3&,而是以十六进制的0x33来代表,包括放在内存或者是写到文件里,其实都是写着0x33的,不信你可以编辑一个文本
文件,写一个&3&,然后用ultraEdit看他的原始码。
&&&&2,一切&字符&都必定用数字+编码表表示。
&&&&这时候,有一个问题:为什么一定要用0x33来代表&3&呢?而不用0x43来代表呢?或者是直接用0x03来代替?其实用什么来代表都
可以,只不过大家都习惯了用ASCII编码表(是美国国家信息交换表)来确定各字符应该是用什么数字代表的。同样,为了表示中国字,我国也指定了中文的编
码表,其中最广泛使用的是GB2312。比如中文的&当&字,就是用0xB5,&0xB1这两个八位的数字来表示的。所以如果显示字符的程序不知道一列数
字到底是按什么编码表编码的,他也无法去判断到底这些是什么文字。如果随便用一个不对的编码表来处理这些数字,处理出来的字符很可能完全是错的。比如在英
文系统上,没有GB2312编码表,送给他一个0xB5,0xB1,他就傻傻的当作ASCII来处理(操作系统通常都有自己默认的编码表),结果显示出来
就是两个奇怪的符号,因为这两个字在ASCII表里就是那两个符号。同样在繁体中文系统里,他的编码表是BIG5,显示出来也是一个奇怪的中文,不是&当
&&&&3,UNICODE让全世界都说一种语言
&&&&看完上面的文字,是否觉得,世界有那么多语言,每个都有自己的一套编码表,很麻烦呢?就算是中文,也有两套流行的编码表,一个是
GB2312,一个是BIG5。要使用不同中文的编码的字符时,还要转来转去,的确很麻烦。不光这个,如果想要写一篇包含很多过国文字的文章,就麻烦了,
必须要让处理这个文章的程序知道,哪个字是什么编码标准的。如果你想要在文章里找一个字,也必须指定你要找的是哪种编码的哪个字。否则,你要找一个
0xB5,0xB1的中文&当&字,很可能把同样数字表示的日文、波兰文这些不相干的字一起给你找出来,够麻烦的吧!
&&&&所以人们想,不如大家都用同一个编码标准吧,各种文字都在编码表里有一席之地,处理文字的程序只需要都按这个编码表来处理就可以了。不
过要一个编码表里包含所有的文字,这张表就大了,本来英文字+数字一共只有128个以内。但加上中文后,忽然就多了数万个,所以存放一个字符需要的大小也
大了很多。现在UNICODE规定了一个字符必须由2个8位数字来表示,想想,8x8x8x8x&=&65536&,是多大的一个数字啊!所以全世界的文
字才能都包含进去。当然拉,也有人说中国字可能都不止6万个拉,还要包括别的文字,但人家外国人觉得你们中国人常用的也没那么多,所以就这么定了,我们也
没办法。需要注意的是GB2312和UNICODE虽然都是用两个8位数来代表一个中文字,但具体的规格可不一样,比如0xB5,0xB1在
UNICODE里面可不是&当&字,而是另外一国的文字来的。
&&&&4,C是如何简洁的处理字符的
&&&&我们来谈谈C的字符串。C语言诞生在JAVA之前,C语言的基本数据类型是没有字符串这个类型的,它只有char[]。也就是C把字符顺
序放入一个字节数组就完了。而且C也不管放在数组里的是什么文字,也不管那些字是按什么编码标准的。而且他的char的大小也不一定是8位数字,有时候是
16位也可能,这要看具体的机器和操作系统。所以写程序的人必须要知道正在处理的char[]的内容到底是按什么编码表表示的字符串,要知道如果比较两国
文字是否相同,可是没任何意义的哦!
&&&&5,JAVA是是如何处理字符的。
&&&&世界总会进步的,JAVA就是一个例子。JAVA终于有了String类了,它是解决字符问题的最好工具。在JAVA里,一个基本的要点
是:String类对象是不需要指定编码表的!为什么它会自己知道一堆数字各代表什么字符呢?就是因为String里的字符信息是用UNICODE编码存
放的。而JAVA为了表示字符(注意是单个字符),也有char这个数据类型,而且他的大小是固定2个8位16进制数字长度,也就是0~65535罗。为
的就是对应UNICODE里面的一个字符。大家如果想取一个String里的按UNICODE数字,可以用
getChars(int&srcBegin,&int&srcEnd,&char[]&dst,&int&dstBegin)&方法取得一个
char[],这个char[]里就是表示String字符的,按UNICODE编码表编码的数字。
&&&&可惜现在绝大多数的系统和程序都不是按UNICODE来处理字符,而JAVA程序总是要和别的程序和系统交换数据的,所以在接收一个字
符,或者是发送一个字符的时候,就必须要留意当前系统和UNICODE的关系了。比如你从网络或者文件接受到一数字:0xB5,0xB1,JAVA程序并
不知道这两个字到底是中文呢?还是日文,或者英文。你如果不指明这个两个数字的编码表,JAVA就会按当前系统默认的编码表来处理。如果这两个数字是从中
文WIN98发出去的,JAVA程序又是在英文LINUX上运行的,那就出现了所谓的乱码问题了。也就是JAVA按英文的编码表ASCII来处理这两个数
字,当通过new&String({0xB5,0xB1})得到的String的时候,这个String代表的已经不是中文的&当&字,而是两个英文的奇
怪字符了。不过如果你知道这两个数字一定是中文的话,就可以指定用new&String({0xB5,0xB1},"GB2312")来处理,这时候新建
立的String才真的是一个&当&字。当然拉,如果你要把一个&当&字的JAVA的String显示在中文WIN98上,必须把这个字输出成两个8位数
字:0xB5,0xB1,不管是写成文件还是输出到浏览器上,都必须是0xB5,0xB1。如何把&当&字用GB2312输
出?String.getBytes("GB2312")就可以拉!所以有一点要记住:和外界交换任何信息都是以byte[]来进行的!。
你可以留意一下JAVA大多数的I/O类,都有以byte[]作为参数和返回值的方法。不过,也有很多写的比较糊涂的程序,没有提供byte[]交换信息
的方法,害的不同文字平台的程序员很头疼。Servlet的HttpRequest.getParameter()就是这样。好在有的
JSP/SERVLET容易还提供先指定编码表的方法,才能比较简单的解决这个问题。
&&&&6,网上关于JAVA中文问题的一些错误处理方法。
&&&&一个是最常见的,不管什么内容,都用new&String(...,"ISO-8859-1")来建立字符串,然后使用的时候按默认的编
码格式(通常在服务器上都是英文系统)输出字符串。这样其实你使用的String并不是按UNICODE来代表真正的字符,而是强行把BYTE数组复制到
String的char[]里,一旦你的运行环境改变,你就被迫要修改一大堆的代码。而且也无法在同一个字符串里处理几种不同编码的文字。
&&&&另一个是把一种编码格式的字符串,比如是GB2312,转换成另一种格式的字符串,比如UTF-8,然后不指明是UTF-8编码,而直
接用new&String(...)来建立String,这样放在String里面的字符也是无法确定的,它在不同的系统上代表不同的字符。如果要求别人
用&UTF-8格式&的String来交换信息的时候,其实已经破坏了JAVA为了兼容各种语言所做的规定。这种错误的本质思想是还按写C语言的方式,把
字符串纯粹当作可以自己自由编码的存储器使用,而忽略了JAVA字符串只有一种编码格式。如果真的想自由编码,用byte[]或者char[]就完全了解
决问题的了。
&&&&以上,除了是解决JAVA中文问题的基础知识外,也是多年前应该掌握的计算机基础知识。温故而知新,以期共勉
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:9206次
排名:千里之外
原创:12篇
(1)(1)(6)(4)(5)(1)

我要回帖

更多关于 java string转int 的文章

 

随机推荐