java String 类 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。今天就为大家介绍一下java常见的字符串操作方法。
一、使用length()方法获取字符串的长度
public class maintest { public static void main(String[] args) { String str = "abcdefg"; //length():统计当前字符串的字符个数 int i = str.length(); System.out.println(i); } }
二、使用indexOf()方法查找指定字符再字符串中的位置
public class maintest { public static void main(String[] args) { String str = "abcdefg"; //indexOf():查找指定字符再字符串中的位置 int index = str.indexOf("a"); System.out.println(index); } }
三、使用toUpperCase()方法将字符串中的字符变为了大写形式
public class maintest { public static void main(String[] args) { String str = "abcdefg"; //小写转大写 //toUpperCase():将字符串中的字符变为了大写形式 String str = str.toUpperCase(); System.out.println(str); } }
四、使用toLowerCase()方法将字符串中的字符变为小写
public class maintest { public static void main(String[] args) { //toLowerCase():将字符串中的字符变为小写 String str = "WWMMDDHH"; String str1 = str3.toLowerCase(); System.out.println(str); } }
五、使用substring()方法截取字符串
public class maintest { public static void main(String[] args) { String str = "abcdefg"; //substring:截取字符串 String str = "abcdefg"; String str = str5.substring(0, 3); System.out.println(str); String str = str5.substring(3); System.out.println(str); } }
六、使用replaceAll()方法替换当前字符串中指定内容
public class maintest { public static void main(String[] args) { String str = "abcdefg"; String str = str5.replaceAll("abc", "xyz"); System.out.println(str); } }
七、使用trim()方法能够去掉当前字符串中两端的空格
public class maintest { public static void main(String[] args) { String str = " abc def "; System.out.println(str.length()); String str1 = str9.trim(); System.out.println(str); System.out.println(str1); } }
八、字符串+字符串 等于拼接
public class maintest { public static void main(String[] args) { String str1 = "123"; String str2 = "100"; System.out.println(str1+str2); } }
九、将字符串变为整数
public class maintest { public static void main(String[] args) { String str1 = "123"; String str2 = "100"; int num1 = Integer.parseInt(str1); int num2 = Integer.parseInt(str2); System.out.println(num1+num2); } }
十、使用charAt()找到指定字符串中位置的字符
public class maintest { public static void main(String[] args) { String str1000 = "abcde"; //charAt:找到指定字符串中位置的字符 char char = str1000.charAt(2); System.out.println(char); } }
java字符串的比较
总体来说java中字符串的比较是==比较引用,equals 比较值的做法。(equals 对于其他引用类型比较的是地址,这是因为object的equals方法比较的是引用),但是不同的声明方法字符串的比较结果也是不同的。
例如:
String str1=new String("a"); String str2=new String("a"); str1==str2 输出false str1.equals(str2) 输出true 而如果这样声明 String str1="a"; String str2="a"; str1==str2 输出true str1.equals(str2) 输出true
这是因为 equals 方法本来也是比较引用的 字符串类在实现的时候重写了该方法, 第一种声明方法等于是声明了两个对象,用'==‘比较是时候比较的是引用输出的是false 由于他们的值相同用equals的时候就比较的是值了,输出true。
而第二种情况不是因为比较有与第一种有差异,而是因为声明有差异,第二种声明方法在声明的时候有堆或堆栈 共用的现象,也就是说 在声明的时候如果如果声明为类属性他会检查在堆栈中有没有与现在声明的是相同结构的字符串。如果有就直接将地址指向已有内存地址。声明在方法内部的局部变量原理一样只不过他是堆栈共享。
对应上面是示例:
第一种情况:
(1) 声明一个string类型的对象 str1,这个操作会在内存中示例化一个string类型的对象。
(2) 再声明一个String类型的对象str2,这个操作会在内存中示例化另一个String类型的对象,与第一个对象相互独立。
(3)比较两个对象的引用,因为他们是相互独立的所以输出false
(4)比较两个对象的值,他们虽然是独立的内存区域但是有共同的内存结构(值),输出true
第二种情况:
(1)声明一个字符串str1 会示例化一个String类型的对象。
(2)声明另一个字符串 ,现在会检查在同一作用域中有没有相同的内存结构的变量,如果有就直接将将地址指向他。
(3)==比较他们有相同的地址,
(4)equals比较他们有相同的内存结构(值)。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。