目录

一、创建字符串

二、连接字符串

连接多个字符串

连接其他数据类型

三、获取字符串的信息

获取字符串的长度

字符串查找

获取指定索引位置的字符

四、字符串操作

获取子字符串

去除空格

字符串的替换

判断字符串是否相等

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

字母大小写转换

字符串分割


一、创建字符串

(1)String(char a[])

用一个字符数组a创建一个String对象

char a[] = {'a','b','c','d'};
String s = new String(a);

(2)String(char a[],int offset,int length)

提取a数组中的一部分,创建一个字符串对象,offset表示开始截取字符的位置

char a[] = {'a','b','c','d'};
String s = new String(a,2,2);

(3)String(char[] value)

String s = new String("Student");

(4)引用字符串常量来创建字符串变量

String s1;
s1 = "student";

二、连接字符串

连接多个字符串

使用“+”可实现多个字符串连接的功能

public class practice {public static void main(String[] args) {String s1 = new String("Hello");String s2 = new String("World");String s = s1 + " " + s2;System.out.println(s);}}

注意:Java中一句相连的字符串不能分开在两行写。如果字符串太长,可以将字符串写在两行但是需要使用“+”连接。

连接其他数据类型

字符串也可以同其他数据类型进行连接。连接时,会将这些数据直接转换成字符串。

public class practice {public static void main(String[] args) {int a = 4;float b = 4.5f;System.out.println("sum" + a + b); // sum44.5}}

注意区别,因为圆括号的优先级高

public class practice {public static void main(String[] args) {int a = 4;float b = 4.5f;System.out.println("sum" + (a+b)); // sum8.5}}

三、获取字符串的信息

获取字符串的长度

String str = "1234567890";
int size = str.length();
System.out.println("str.length() = " + size); // str.length() = 10

字符串查找

String类提供两种查找查找字符串的方法。

indexOf() 与 lastIndexOf() :都允许在字符串中搜索指定条件的字符或者字符串。

indexOf()方法返回的是搜索的字符或者字符串首次出现的位置,lastIndexOf()方法返回的是最后一次出现的位置。

String str = "00112233445566778899";
int pos1 = str.indexOf("0");
int pos2 = str.lastIndexOf("0");
System.out.println("pos1 = " + pos1); // pos1 = 0
System.out.println("pos2 = " + pos2); // pos2 = 1
public class practice {public static void main(String[] args) {String str = "we are students";int pos = str.lastIndexOf("");System.out.println("空字符在字符串str中的索引位置是" + pos); //空字符在字符串str中的索引位置是15System.out.println("字符串str的长度是" + str.length());//字符串str的长度是15}}

获取指定索引位置的字符

使用charAt()方法可以可以将指定索引处的字符返回。

public class practice {public static void main(String[] args) {String str = "hello world";char mychar = str.charAt(6);System.out.println(mychar); // w}}

四、字符串操作

获取子字符串

substring()方法可以对字符串进行截取。利用下标进行截取,且应明确字符串下标应从0开始。

(1)substring(int beginIndex),其中beginIndex指定从某一索引处开始截取字符串。

String str = "hello world";
String s = str.substring(3);
System.out.println(s); //lo world

(2)substring(int beginIndex,int endIndex)

beginIndex , endIndex )

String str = "hello world";
String s = str.substring(3,7);
System.out.println(s); //lo w

去除空格

trim()方法返回字符串的副本,忽略前导空格和尾部空格(不会去掉字符串中间的空格)

String str = "     0123 5678    ";
System.out.println("原始长度" + str.length()); // 原始长度18
String s = str.trim();
System.out.println(s); //0123 5678
System.out.println("去掉前导空格和尾部空格之后的长度是" + s.length());
//去掉前导空格和尾部空格之后的长度是9

字符串的替换

replace()方法可实现将指定字符或者字符串替换成新的字符或者字符串

str.replace(char oldChar,char newChar)

如果oldChar没有出现在该对象表达式中的字符串序列中,则将原字符串返回。

是将所有的字符oldChar转换成newChar

public class practice {public static void main(String[] args) {String str = "address_a";String newstr = str.replace("a", "A");System.out.println(newstr); //Address_A}}

判断字符串的开始与结尾

startsWith() 和 endsWith() 方法分别用于判断字符串是否以指定的内容开始或结束。这两个方法的返回值都是boolean类型。

(1)startWith()方法

该方法用于判断当前字符串对象的前缀是否为参数指定的字符串。

str.startsWith(String prefix),其中指作为前缀的字符。

(2)endsWith()方法

该方法用于判断当前字符是否为以给定的子字符串结束。

str.endsWith(String suffix),其中suffix是指作为后缀的字符串。

public class practice {public static void main(String[] args) {String num1 = "22045612";String num2 = "21304578";boolean b = num1.startsWith("22");boolean b2 = num1.endsWith("78");boolean b3 = num2.startsWith("22");boolean b4 = num2.endsWith("78");System.out.println("字符串num1是以‘22’开始的吗?"+b); // 字符串num1是以‘22’开始的吗?trueSystem.out.println("字符串num1是以‘78’结束的吗?"+b2); // 字符串num1是以‘78’结束的吗?falseSystem.out.println("字符串num2是以‘22’开始的吗?"+b3); // 字符串num2是以‘22’开始的吗?falseSystem.out.println("字符串num2是以‘78’结束的吗?"+b4); // 字符串num2是以‘78’结束的吗?true}}

判断字符串是否相等

比较运算符“==”,因为比较运算符比较的是两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的使用比较运算符仍然会返回false。

String s1 = new String("123");
String s2 = new String("123");
boolean b = (s1 == s2);
System.out.println(b); // false

(1)如果两个字符串具有相同的字符和长度,则使用equals()方法进行比较时返回true,区分大小写

str.equals(String otherstr)

(2)在忽略大小写的情况下判断两个字符串是否相等

str.equalsIgnoreCase(String otherstr)

public class practice {public static void main(String[] args) {String s1 = new String("abc");String s2 = new String("ABC");String s3 = new String("abc");boolean b = s1.equals(s2);boolean b2 = s1.equalsIgnoreCase(s2);System.out.println(s1 + " equals " + s2 + ":" + b); // abc equals ABC:falseSystem.out.println(s1 + " equalsIgnoreCase " + s2 + ":" + b2); // abc equalsIgnoreCase ABC:true}}

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

str.compareTo(String otherstr)

如果按照字典顺序将此String对象位于参数字符串之前则比较结果为一个负整数;

如果按照字典顺序将此String对象位于参数字符串之后则比较结果为一个正整数;

如果两个字符串相等,则结果为0;

public class practice {public static void main(String[] args) {String s1 = new String("b");String s2 = new String("a");String s3 = new String("e");System.out.println(s1 + " compare to " + s2 + ":" + s1.compareTo(s2));//b compare to a:1System.out.println(s1 + " compare to " + s3 + ":" + s1.compareTo(s3));//b compare to e:-3}}

字母大小写转换

str.toLowerCase() 将String转换成小写

str.toUpperCase() 将String转换成大写

public class practice {public static void main(String[] args) {String str = "abc DFE";String newstr1 = str.toLowerCase();String newstr2 = str.toUpperCase();System.out.println(newstr1);//abc dfeSystem.out.println(newstr2);//ABC DFE}}

字符串分割

(1)split(String sign)

str.split(String str)

该方式是根据给定的分割符对字符串进行拆分。

(2)split(String sign,int limit)

str.split(String sign,int limit)

该方法根据给定的分割符对字符串进行拆分,并限定拆分的次数。

public class practice {public static void main(String[] args) {String str = "192.168.0.1";String[] firstArray = str.split("\\.");String[] secondArray = str.split("\\.",2);System.out.print("str的原值为:[" + str + "]");System.out.println("全部分割结果是");for(String a:firstArray) {System.out.print("["+ a + "]");}System.out.println();for(String a:secondArray) {System.out.print("[" + a + "]");}System.out.println();}}/*
str的原值为:[192.168.0.1]全部分割结果是
[192][168][0][1]
[192][168.0.1]*/

【Java】字符串(一)相关推荐

  1. java字符串的知识总结

    java字符串的基本概念 字符串是java特殊的类,使用方法像一般的基本数据类型. 声明字符串的方法: 字符串类型  字符串名字 = 字符串内容 例如 String str="hello&q ...

  2. Java字符串就该这样设计

    一翻开Java面试题,基本上都会有考察字符串的不可变性,new String()和""的区别,字符串+内部实现等相关问题,您可能也知道常量池,看了一些堆栈图,了解了上述答案,可是过 ...

  3. java 字符串大小比较

    //java 字符串大小比较 String a="b123"; String b="b124";String d="b122"; Strin ...

  4. 【转】Java字符串与字符集的基本概念

    原文地址:http://blog.csdn.net/darxin/article/details/5079242 Java String是Java API中最常用的类,本文和大家谈谈String类的内 ...

  5. Java字符串用“。”(点)分隔。

    本文翻译自:Java string split with "." (dot) [duplicate] This question already has an answer her ...

  6. Java字符串真的不可变吗?

    本文翻译自:Is a Java string really immutable? We all know that String is immutable in Java, but check the ...

  7. java中把字符串转换为日期,java字符串转日期方法,java如何将字符串转为日期?...

    之前给大家介绍了一下java字符串转int的方法,那么下面要给大家带来的就是java字符串转日期的方法,一起来详细的了解一下. 注意,在文章当中所使用的api是SimpleDateFormat. Si ...

  8. java字符串逐个分解_改进JAVA字符串分解的方法

    改进JAVA字符串分解的方法 一.概述 大多数Java程序员都曾经使用过java.util.StringTokenizer类.它是一个很方便的字符串分解器,主要用来根据分隔符把字符串分割成标记(Tok ...

  9. 循环遍历Java字符串字符的规范方法——类似python for ch in string

    比如我将string作为CNN 文本处理输入: float [] input = new float[maxLength]; // 1 sentence by maxLenWords// int[] ...

  10. java字符串编程_java字符串抉择

    下面我们就字符串连接方面分析. 1.String 打开String的源码,如图所示 会发现存储字符串的字符数值是final常量.再看St final修饰的属性为常量(值不可改变),要么在声明的同时赋值 ...

最新文章

  1. R语言构建xgboost文本分类模型(bag of words):xgb.cv函数交叉验证确定xgboost模型的最优子树个数、交叉验证获取最优子树之后构建最优xgboost模型并评估模型文本分类效能
  2. 菜鸟学算法一基础知识篇
  3. feign.RetryableException null executing post
  4. 如何使用gnvm自动更新Windows10操作系统上的nodejs
  5. Linq下有一个非常实用的SelectMany方法,很多人却不会用
  6. Java陷阱(一)——ArrayList.asList
  7. ExtJs2.0学习系列(1)--Ext.MessageBox
  8. 用css和html实现的一个forest logo
  9. deepin终端下载速度超慢解决方案
  10. hdu 2553(N皇后)
  11. eeupdate 更新MAC地址
  12. 博客日历的html代码,八种精美的博客日历代码
  13. R语言-基于集波士顿住房
  14. 21. SCHEMATA
  15. Android Studio 设置打开layout.xml文件的默认视图
  16. 12 如何用网格策略网住收益?——实操篇
  17. ${pageContext.request.contextPath}的作用
  18. 洛谷 P1646 [国家集训队]happiness 网络流 最小割 Dinic+当前弧优化
  19. 【思维题】CodeForce 817A Treasure Hunt
  20. python保留字-Python保留字

热门文章

  1. 软件缺陷预测的两种定义
  2. 太原理工大学计算机专业多少分录取分数线,多少分能上山西太原理工大学,往年全国各省各专业录取分数线出炉...
  3. 计算机考试批处理试题,2015计算机三级考试pc技术模拟试题及答案(八)
  4. oracle schedule stop,Oracle调度Schedule特性(第八部分)-Windows和Window Groups
  5. 背景图自适应屏幕居中显示,且不变形
  6. 【Vue】IView之table组件化学习(二)
  7. 阿里发布AliGenie2.0系统,“百箱大战”用上视觉武器
  8. mysql5.6基于GTID主从复制设置
  9. namenode如何存储复本?
  10. Fckeditor PHP/ASP File Upload Vul