java中string的方法
1. 在java中String的传参
这个是储存结构的问题
1,str1是个地址值,传给str的也是这个地址值,此时,str=str1=地址值,都指向常量池中的“good”
2,当执行 str="test ok"后,常量池中出现“test ok”,str改变且指向常量池中的“test ok”,此时str1仍指向常量池中的“good”,str地址值不等于str1地址值
3,你的程序并不能说明你的问题,输出结果应该是 test ok and gbc
4,简单来记:基本数据类型和String str在传参方法中改变是无效的,但String[] str、char[] ch之类是有效的
2. java中的string方法
从一个byte数组里,从第offset位置开始取,取length长度,按照规定的Charset字符编码集来获取byte里的数据简单示例:public
static
void
main(String[]
args)
{
byte[]
a
=
{'a','b','c','d','e','f','g','h','i'};
String
aa
=
new
String(a,5,3,Charset.defaultCharset());
String
bb
=
new
String(a,5,3,Charset.forName("US-ASCII"));
System.out.println(aa);
System.out.println(bb);
}当然,如果byte数组内存放的用中文字符或者其他字符,测试起来更有意义~
3. 在java中String的方法:toString()怎么用
toString();就是把其他的数据类型转换成String类型,
比如:
int
i=0;
String
b=i.toString();这个还有另一种转换法
String
b=(String)i;
嗯。就是这样使用的,兄弟
4. java中的string用法
java中的string用法,可以到java api查找方法的使用方式:
classStringMethodDemo
{
publicstaticvoidmethod_Zhuanhuan_Qukong_Bijiao()
{
Strings="helloJava";
//打印结果是:(hello和java前后门都有空格)hellojava
sop(s.toUpperCase());
//打印结果是:(HELLO和JAVA前后门都有空格)HELLOJAVA
sop(s.toLowerCase());
//打印及结果是:不带空格的“hellojava”
sop(s.trim());
//比较数的大写,打印结果是:1,因为b对应ascii值是98,
//a对应是97,所以b-a=1
Strings1="abc";
Strings2="aaa";
sop(s1.compareTo(s2));
}
publicstaticvoidmethod_sub()
{
Strings="abcdef";
//打印结果是:cdef,从指定位置开始到结尾。如果角标不存在,会出现字符串角标越界。
sop(s.substring(2));
//打印结果是:cd,包含头,不包含尾。
sop(s.substring(2,4));
}
publicstaticvoidmethod_split()
{
Strings="zhangsan,lisi,wangwu";
String[]arr=s.split(",");
for(intx=0;x<arr.length;x++)
{
sop(arr[x]);
}
}
publicstaticvoidmethod_replace()
{
Strings="hellojava";
//Strings1=s.replace('a','n');
//Strings1=s.replace('w','n');如果要替换的字符不存在,返回的还是原串
Strings1=s.replace("java","world");//打印结果是:helloworld
sop("s="+s);//打印结果是:hellojava因为字符串一旦被初始化,值就不可被改变
sop("s1="+s1);//打印结果是:hellojnvn
}
publicstaticvoidmethod_trans()
{
char[]arr={'a','b','c','d','e','f'};
Strings=newString(arr,1,3);
sop("s="+s);//打印结果是:bcd
Strings1="zxcvbnm";
char[]chs=s1.toCharArray();
for(intx=0;x<chs.length;x++)
{
sop("ch="+chs[x]);//打印结果是:ch=z,x,c,v,b,n,m
}
}
publicstaticvoidmethod_is()
{
Stringstr="ArrayDemo.java";
//判断文件名称是否是Array单词开头
sop(str.startsWith("Array"));
//判断文件名称是否是.java的文件
sop(str.endsWith(".java"));
//判断文件中是否包含Demo
sop(str.contains("Demo"));
}
publicstaticvoidmethod_get()
{
Stringstr="abcdeakpf";
//长度
sop(str.length());
//根据索引获取字符
sop(str.charAt(4));
//sop(str.charAt(40));当访问到字符串中不存在的角标时会发生(字符串角标越界异常)
//根据字符获取索引
//sop(str.indexOf('a'));
sop(str.indexOf('a',3));//打印的是5,因为角标3是d,
//所以从d后面开始找a,第5个角标是a
//sop(str.indexOf('t',3))打印:-1,如果没有找到角标,返回-1
//反向索引一个字符出现的位置(从右往左查找,但是角标还是从左开始)
sop(str.lastIndexOf("a"));
}
publicstaticvoidmain(String[]args)
{
method_Zhuanhuan_Qukong_Bijiao();
//method_sub();
//method_split();
//method_replace();
//method_trans();
//method_is();
//method_get();
/*
Strings1="abc";
Strings2=newString("abc");
Strings3="abc";
System.out.println(s1==s2);
System.out.println(s1==s3);
*/
}
publicstaticvoidsop(Objectobj)
{
System.out.println(obj);
}
}
5. java中String对象的getBytes方法是干什么的
都是将一个string类型的字符串转换成byte类型并且存入一个byte数组中。
在java中的所有数据底层都是字节,字节数据可以存入到byte数组。
存储字符数据时(字符串就是字符数据),会先进行查表,然后将查询的结果写入设备,读取时也是先查表,把查到的内容打印到显示设备上
getBytes()是使用默认的字符集进行转换,getBytes(“utf-8”)是使用UTF-8编码表进行转换。
6. Java的String用法
java中String类型的字面量(即“java”这个字符串)是存放在内存中的静态存储区,当程序执行到String a = "java";该区域里就会生成一个字符串字面量“java”,执行String b = "java";时,java对字符串的创建过程进行了优化,会先去该区域里寻找字面量为“java”的字符串,如果找到了,就把该字符串的引用指向到b,如果找不到就创建新的字符串“java”,所以a和b共用一个。加号(+)是字符串的一个连接方法,可以理解为String类的concat方法,String c = x +y;和String c = x.concat(y);效果是一样的,变量c接受的是concat方法的返回值,是内存中“ja”和“va”连接后的对象,与前面的过程不是一码事!如果还不理解,可以再问我!
7. java关于String[] str = new String[]{};
大括号的作用是初始化。
String[]str = new String[]{};
大括号的意思是初始化,前面定义的String[]str ;
但是现在大括号里面是空的,也就是没有内容,打印str的长度是0,但是如果这样定义String[]str = new String[]{“111”,"22222"};str的长度就为2。
String类有个构造方法 String(byte ascii[],int hiByte);此方法是以字节数组的形式生成一个字符串,数组中存放字符申各字符对应的ASCII码。
为了和使用 1~3字节表示一个代码的 UTF(Unicode Text Format)兼容,这个构造方法的入口参数中用hiByte指出每个代码含几个高位字节。对于ASCII码而言,因为只有1个字节,而没有高位字节,所以,hiByte的值为0,但对其他字符,hiByte的值可能为1或2。
(7)java中string的方法扩展阅读:
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码;
存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。
8. java中String 类的常用方法有哪些
用的比较多的:
1
替换字符串
replace();
2
分割字符串
split("regex");
3
equals
字符串比较
4
length()
获取长度、、、、好多好多
你看看api
9. Java程序String中常用的方法
classMailtest{
privateStringmail;
publicMailtest(Stringmail){
this.mail=mail;
}
publicbooleantestmail(){
if(mail.indexOf("@")==-1||mail.indexOf(".")==-1)//不包括@或.
returnfalse;
if(mail.indexOf("@")!=mail.lastIndexOf("@")||
mail.indexOf(".")!=mail.lastIndexOf("."))//含有多了@或.
returnfalse;
if(mail.indexOf(".")>mail.indexOf("@"))//.出现在@前面
returnfalse;
returntrue;
}
}
10. java中string怎么使用
以下是关于string的七种用法,注意哦,记得要时常去查看java的API文档,那个里面也有很详细的介绍
1>获取
1.1:字符串中包含的字符数,也就是字符串的长度。
int length():获取长度
1.2:根据位置获取位置上某个字符。
char charAt(int index)
1.3:根据字符获取该字符在字符串中的位置。
int indexOf(int ch):返回的是ch在字符串中第一次出现的位置。
int indexOf(int ch,int fromIndex):从fromIndex指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str):返回的是str在字符串中第一次出现的位置。
int indexOf(String str,int fromIndex):从fromIndex指定位置开始,获取str在字符串中出现的位置。
1.4:int lastIndexOf(String str):反向索引。
2>判断
2.1:字符串中是否包含某一个子串。
boolean contains(str);
特殊之处:indexOf(str):可以索引str第一次出现为止,如果返回-1,表示该str不在字符串中存在。
所以,也可以用于对指定判断是否包含。
if(str.indexOf("a")!=1)
而且该方法既可以判断,也可以获取出现的位置。
2.2:字符串中是否有内容。
boolean isEmpty():原理就是判断长度是否为0。
2.3:字符串是否以指定内容开头。
boolean startsWith(str);
2.4:字符串是否以指定内容结尾。
boolean endsWith(str);
2.5:判断字符内容是否相同,复写了object类中的equals方法。
boolean equals(str);
2.6:判断内容是否相同,并忽略大小写。
boolean.equalsIgnorecase();
3>转换
3.1:将字符数组转成字符串。
构造函数:String(char[])
String(char[],offset,count):将字符数组中的一部分转成字符串
静态方法:
static String ValueOf(char[]);
static String ValueOf(char[] data,int offset,int count);
static String valueOf(char[]);
3.2:将字符串转成字符组
char[] tocharArray();
3.3:将字节数组转成字符串。
String(byte[])
String(byte[],offset,count):将字节数组中的一部分转成字符串
3.4:将字符串转成字节数组。
byte[] getBytes()
3.5:将基本数据类型转成字符串,
static String valueOf(int)
static String valueOf(double)
// 3+"" 与 String.valueOf(3)的值是一样的
特殊:字符串和字节数组在转换过程中,是可以指定编码的。
4>替换
String replace(oldchar,newchar);
5>切割
String[] split(regex);
6>子串。获取字符串中的而一部分
String subString(begin);
String subString(begin,end);
7>转换,去除空格,比较。
7.1:将字符串转成大写或小写
String toUpperCsae() 大转小
String toLowerCsae() 小转大
7.2:将字符串两端的多个空格去除
String trim();
7.3:对两个字符串进行自然顺序的比较
int compareTo(string);
请看如下代码,下面的代码都是针对上面string七种用法而进行一一举例说明:
复制代码 代码如下:
class StringMethodDemo
{
public static void method_Zhuanhuan_Qukong_Bijiao()
{
String s = " hello Java ";
//打印结果是:(hello和java前后门都有空格)hello java
sop(s.toUpperCase());
//打印结果是:(HELLO和JAVA前后门都有空格)HELLO JAVA
sop(s.toLowerCase());
//打印及结果是:不带空格的“hello java”
sop(s.trim());
//比较数的大写,打印结果是:1,因为b对应ascii值是98,
//a对应是97,所以b-a=1
String s1 = "abc";
String s2 = "aaa";
sop(s1.compareTo(s2));
}
public static void method_sub()
{
String s = "abcdef";
//打印结果是:cdef,从指定位置开始到结尾。如果角标不存在,会出现字符串角标越界。
sop(s.substring(2));
//打印结果是:cd,包含头,不包含尾。
sop(s.substring(2,4));
}
public static void method_split()
{
String s = "zhangsan,lisi,wangwu";
String[] arr = s.split(",");
for(int x=0; x<arr.length; x++)
{
sop(arr[x]);
}
}
public static void method_replace()
{
String s = "hello java";
//String s1 = s.replace('a','n');
//String s1 = s.replace('w','n'); 如果要替换的字符不存在,返回的还是原串
String s1 = s.replace("java","world");//打印结果是:hello world
sop("s="+s); //打印结果是:hello java因为字符串一旦被初始化,值就不可被改变
sop("s1="+s1);//打印结果是:hello jnvn
}
public static void method_trans()
{
char[] arr = {'a','b','c','d','e','f'};
String s = new String(arr,1,3);
sop("s="+s);//打印结果是:bcd
String s1 = "zxcvbnm";
char[] chs = s1.toCharArray();
for(int x=0; x<chs.length; x++)
{
sop("ch="+chs[x]);//打印结果是:ch=z,x,c,v,b,n,m
}
}
public static void method_is()
{
String str = "ArrayDemo.java";
//判断文件名称是否是Array单词开头
sop(str.startsWith("Array"));
//判断文件名称是否是.java的文件
sop(str.endsWith(".java"));
//判断文件中是否包含Demo
sop(str.contains("Demo"));
}
public static void method_get()
{
String str = "abcdeakpf";
//长度
sop(str.length());
//根据索引获取字符
sop(str.charAt(4));
//sop(str.charAt(40));当访问到字符串中不存在的角标时会发生(字符串角标越界异常)
//根据字符获取索引
//sop(str.indexOf('a'));
sop(str.indexOf('a',3));//打印的是5,因为角标3是d,
//所以从d后面开始找a,第5个角标是a
//sop(str.indexOf('t',3))打印:-1,如果没有找到角标,返回-1
//反向索引一个字符出现的位置(从右往左查找,但是角标还是从左开始)
sop(str.lastIndexOf("a"));
}
public static void main(String[] args)
{
method_Zhuanhuan_Qukong_Bijiao();
//method_sub();
//method_split();
//method_replace();
//method_trans();
//method_is();
//method_get();
/*
String s1 = "abc";
String s2 = new String("abc");
String s3 = "abc";
System.out.println(s1==s2);
System.out.println(s1==s3);
*/
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}