当前位置:文档之家› String常用的操作步骤

String常用的操作步骤

String常用的操作步骤
String常用的操作步骤

String常用的操作步骤

String 类,在Java 中这个类应该是使用最频繁的类了。然而关于它的常用的操作,我却不甚了解。整理这个东西很反人性的,这些方法,你看到他的时候感觉很简单,但是真正用的时候还是不太会。

先说说String 对象的构造器,创建一个字符创可以使用如下方法

String s = "123";

String s1 = newString("123");

char[] value = {'1','2','3'};

String s2 = new String(value);

System.out.println(s2); // 123

char[] value1 = {'0','1','2','3','4'};

String s3 = new String(value1,1,3); // 从哪里开始,取几位

System.out.println(s3); //123

StringBuildersb= newStringBuilder("123");

String s4 = new String(sb);

System.out.println(s4); //123

我就提一下,为什么人家类创建对象都用new ,而String 可以直接赋值呢?s 和s1 的区别到底在哪呢?这样设计的思路还是因为String 的超高使用频率,为了节省空间,s 的创建过程为在内存中创建一个“123”这个String,然后将引用赋给s ,如果这个时候还有一条语句String s5 = “123”,那么JVM 将不再创建“123”,而是直接将第一个“123”的引用赋给s5,也就是说s 和s5 使用同一块内存,但是使用new 创建就不一样,不论之前有没有,照样在堆中开辟新的空间。

下面就看看常用的方法有那些吧!

基础篇

String s = "I don't like JAVA !";

// 返回字符串的长度,注意和数组的length属性的区别呦!

int length =s.length();

System.out.println(length); // 19

// 返回某个字符在字符串中的位置,即数组下标

int position = s.indexOf('!');

System.out.println(position); // 18

// 返回指定下标的字符

charcharAt = s.charAt(0);

System.out.println(charAt); // I

// 求子串参数为下标的起止位置,含前不含后。尾下标可以默认不写String substring = s.substring(13, 19);

System.out.println(substring); // JAVA !

// 将字符串转换为大写,相应的还有转换为小写toLowerCase() String s1 =s.toUpperCase();

System.out.println(s1); // I DON'T LIKE JAVA !

提高篇

// 字符串的替换,前为旧串,后为新串。

String s2 = s.replace("don't", "do");

System.out.println(s2); // I do like JAVA !

// 去除前后空格

String trim =s.trim();

System.out.println(trim); // I don't like JAVA !

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

String format = String.format("请说出真心话: %s", s);

System.out.println(format); // 请说出真心话: I don't like JAVA !

// 以指定字符串进行分割字符串,得到字符串数组。

String[] split = s.split(" ");

for (inti = 0; i

System.out.print(split[i]); // Idon'tlikeJAVA!

}

// 将一个字符串转换成字节数组,得到一个系统默认的编码格式的字节数组。

byte[] bytes =s.getBytes();

// 将一个字符串转换成字符数组,返回的数组中是一个个的字符。

char[] array = s.toCharArray();

郁闷篇

不知道你们是怎么样的,我在写代码的时候总是会不自觉地使用“==”来比较两个字符串是否相等。虽然我明确的知道这是不对的,我想还是因为我代码写的少…,所以你们记住了啊,要使用equals 方法的!给个例子,自己感受感受区别。

String s3 = "123";

String s4 = newString("123");

String s5 = "123";

System.out.println(s3 == s4); // false

System.out.println(s3 == s5); // true

System.out.println(s3.equals(s4)); // true

最后来看一看基本类型和字符串之间的相互转化。

String s3 = "123";

intnum =Integer.parseInt(s3);

System.out.println(num); // 123

String string=String.valueOf(num);

System.out.println(string); // 123

套路就是想得到基本数据类型,就使用对应包装类调用包装类的praseXXX() 方法。想得到字符串就使用String 调用String 类的静态重载方法valueOf() 。

相关主题
文本预览
相关文档 最新文档