首页 > 编程知识 正文

java之string的用法(java中string常用方法)

时间:2023-12-24 12:05:41 阅读:320778 作者:HRQS

本文目录一览:

Java数组中string的用法

String a[ ]={"1","2","3","4",null};

String b[ ]={"1","2","3","4",'c'};

A是正确的。

null表示空指针,所以你可以理解它是没有类型的,但也可以是任意类型的(任何指针都可以置null)。

而B中,当然不可以将一个字符类型(基本类型)赋值给一个字符串类型(类类型)。

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”连接后的对象,与前面的过程不是一码事!如果还不理解,可以再问我!

java中的string用法

java中的string用法,可以到java api查找方法的使用方式:

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; xarr.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; xchs.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));当访问到字符串中不存在的角标时会发生StringIndexOutOfBoundsException(字符串角标越界异常)

  //根据字符获取索引

  //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);

 }

}

java中string类的方法有哪些?

方法摘要

char charAt(int index)

返回指定索引处的 char 值。

int codePointAt(int index)

返回指定索引处的字符(Unicode 代码点)。

int codePointBefore(int index)

返回指定索引之前的字符(Unicode 代码点)。

int codePointCount(int beginIndex, int endIndex)

返回此 String 的指定文本范围中的 Unicode 代码点数。

int compareTo(String anotherString)

按字典顺序比较两个字符串。

int compareToIgnoreCase(String str)

不考虑大小写,按字典顺序比较两个字符串。

String concat(String str)

将指定字符串联到此字符串的结尾。

boolean contains(CharSequence s)

当且仅当此字符串包含 char 值的指定序列时,才返回 true。

boolean contentEquals(CharSequence cs)

当且仅当此 String 表示与指定序列相同的 char 值时,才返回 true。

boolean contentEquals(StringBuffer sb)

当且仅当此 String 表示与指定的 StringBuffer 相同的字符序列时,才返回 true。

static String copyValueOf(char[] data)

返回指定数组中表示该字符序列的字符串。

static String copyValueOf(char[] data, int offset, int count)

返回指定数组中表示该字符序列的字符串。

boolean endsWith(String suffix)

测试此字符串是否以指定的后缀结束。

boolean equals(Object anObject)

比较此字符串与指定的对象。

boolean equalsIgnoreCase(String anotherString)

将此 String 与另一个 String 进行比较,不考虑大小写。

static String format(Locale l, String format, Object... args)

使用指定的语言环境、格式字符串和参数返回一个格式化字符串。

static String format(String format, Object... args)

使用指定的格式字符串和参数返回一个格式化字符串。

byte[] getBytes()

使用平台默认的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。

void getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)

已过时。 该方法无法将字符正确转换为字节。从 JDK 1.1 起,完成该转换的首选方法是通过 getBytes() 构造方法,该方法使用平台的默认字符集。

byte[] getBytes(String charsetName)

使用指定的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

将字符从此字符串复制到目标字符数组。

int hashCode()

返回此字符串的哈希码。

int indexOf(int ch)

返回指定字符在此字符串中第一次出现处的索引。

int indexOf(int ch, int fromIndex)

从指定的索引开始搜索,返回在此字符串中第一次出现指定字符处的索引。

int indexOf(String str)

返回第一次出现的指定子字符串在此字符串中的索引。

int indexOf(String str, int fromIndex)

从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。

String intern()

返回字符串对象的规范化表示形式。

int lastIndexOf(int ch)

返回最后一次出现的指定字符在此字符串中的索引。

int lastIndexOf(int ch, int fromIndex)

从指定的索引处开始进行后向搜索,返回最后一次出现的指定字符在此字符串中的索引。

int lastIndexOf(String str)

返回在此字符串中最右边出现的指定子字符串的索引。

int lastIndexOf(String str, int fromIndex)

从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。

int length()

返回此字符串的长度。

boolean matches(String regex)

通知此字符串是否匹配给定的正则表达式。

int offsetByCodePoints(int index, int codePointOffset)

返回此 String 中从给定的 index 处偏移 codePointOffset 个代码点的索引。

boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)

测试两个字符串区域是否相等。

boolean regionMatches(int toffset, String other, int ooffset, int len)

测试两个字符串区域是否相等。

String replace(char oldChar, char newChar)

返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。

String replace(CharSequence target, CharSequence replacement)

使用指定的字面值替换序列替换此字符串匹配字面值目标序列的每个子字符串。

String replaceAll(String regex, String replacement)

使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串。

String replaceFirst(String regex, String replacement)

使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的第一个子字符串。

String[] split(String regex)

根据给定的正则表达式的匹配来拆分此字符串。

String[] split(String regex, int limit)

根据匹配给定的正则表达式来拆分此字符串。

boolean startsWith(String prefix)

测试此字符串是否以指定的前缀开始。

boolean startsWith(String prefix, int toffset)

测试此字符串是否以指定前缀开始,该前缀以指定索引开始。

CharSequence subSequence(int beginIndex, int endIndex)

返回一个新的字符序列,它是此序列的一个子序列。

String substring(int beginIndex)

返回一个新的字符串,它是此字符串的一个子字符串。

String substring(int beginIndex, int endIndex)

返回一个新字符串,它是此字符串的一个子字符串。

char[] toCharArray()

将此字符串转换为一个新的字符数组。

String toLowerCase()

使用默认语言环境的规则将此 String 中的所有字符都转换为小写。

String toLowerCase(Locale locale)

使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。

String toString()

返回此对象本身(它已经是一个字符串!)。

String toUpperCase()

使用默认语言环境的规则将此 String 中的所有字符都转换为大写。

String toUpperCase(Locale locale)

使用给定的 Locale 规则将此 String 中的所有字符都转换为大写。

String trim()

返回字符串的副本,忽略前导空白和尾部空白。

static String valueOf(boolean b)

返回 boolean 参数的字符串表示形式。

static String valueOf(char c)

返回 char 参数的字符串表示形式。

static String valueOf(char[] data)

返回 char 数组参数的字符串表示形式。

static String valueOf(char[] data, int offset, int count)

返回 char 数组参数的特定子数组的字符串表示形式。

static String valueOf(double d)

返回 double 参数的字符串表示形式。

static String valueOf(float f)

返回 float 参数的字符串表示形式。

static String valueOf(int i)

返回 int 参数的字符串表示形式。

static String valueOf(long l)

返回 long 参数的字符串表示形式。

static String valueOf(Object obj)

返回 Object 参数的字符串表示形式。

从类 java.lang.Object 继承的方法

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

java中string怎么使用

当执行string

a="abc";时,java虚拟机会在栈中创建三个char型的值'a'、'b'和'c',然后在堆中创建一个string对象,它的值(value)是刚才在栈中创建的三个char型值组成的数组{'a','b','c'},最后这个新创建的string对象会被添加到字符串池中。如果我们接着执行string

b=new

string("abc");代码,由于"abc"已经被创建并保存于字符串池中,因此java虚拟机只会在堆中新创建一个string对象,但是它的值(value)是共享前一行代码执行时在栈中创建的三个char型值值'a'、'b'和'c'.

string

a="abc";

创建了一个对象

这个对象是在字符串池里吧

而不是堆里

所以只创建了一个对象

而string

b=new

string("abc");在字符串常量池以及

堆里都有对象所以是两个对象

string

a="abc";

在常量池中

new

string("abc");

在堆中

string

str1

=

"abc";引用的对象在栈(或者叫string池)中。

string

str1

=new

string

("abc");

引用的对象在内存/堆中。

java 字符 string的 详细用法

我也是菜鸟,尽量把答案表达清楚,不足之处请赐教

string1="aaa";

string2="aaa";

String

string3

=

new

String("aaa");

String

string4

=

new

String("aaa");

而在这四条语句中,

string1==string2;//成立

string1.equals(string2);//返回true

string3==string4;//false

string3.equals(string4);//返回true

弄明白这四个结果,这个问题就解决了

首先string1="aaa";和string2="aaa";

都指向常量池的同一个对象aaa;

其调用==和X.

equals(Y)方法其效果是一样的

而String

string3

=

new

String("aaa");和

String

string4

=

new

String("aaa");是在heap堆中创建两个新对象,他们引用的地址是不同的,从而使得==出现不相等的情况,而X.

equals(Y)当x和Y所引用的对象是同一类对象且属性内容相等(并不一定是相同对象)时返回true,就出现了上面的结果。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。