【Java】字符串(一)
目录
一、创建字符串
二、连接字符串
连接多个字符串
连接其他数据类型
三、获取字符串的信息
获取字符串的长度
字符串查找
获取指定索引位置的字符
四、字符串操作
获取子字符串
去除空格
字符串的替换
判断字符串是否相等
按字典顺序比较两个字符串
字母大小写转换
字符串分割
一、创建字符串
(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】字符串(一)相关推荐
- java字符串的知识总结
java字符串的基本概念 字符串是java特殊的类,使用方法像一般的基本数据类型. 声明字符串的方法: 字符串类型 字符串名字 = 字符串内容 例如 String str="hello&q ...
- Java字符串就该这样设计
一翻开Java面试题,基本上都会有考察字符串的不可变性,new String()和""的区别,字符串+内部实现等相关问题,您可能也知道常量池,看了一些堆栈图,了解了上述答案,可是过 ...
- java 字符串大小比较
//java 字符串大小比较 String a="b123"; String b="b124";String d="b122"; Strin ...
- 【转】Java字符串与字符集的基本概念
原文地址:http://blog.csdn.net/darxin/article/details/5079242 Java String是Java API中最常用的类,本文和大家谈谈String类的内 ...
- Java字符串用“。”(点)分隔。
本文翻译自:Java string split with "." (dot) [duplicate] This question already has an answer her ...
- Java字符串真的不可变吗?
本文翻译自:Is a Java string really immutable? We all know that String is immutable in Java, but check the ...
- java中把字符串转换为日期,java字符串转日期方法,java如何将字符串转为日期?...
之前给大家介绍了一下java字符串转int的方法,那么下面要给大家带来的就是java字符串转日期的方法,一起来详细的了解一下. 注意,在文章当中所使用的api是SimpleDateFormat. Si ...
- java字符串逐个分解_改进JAVA字符串分解的方法
改进JAVA字符串分解的方法 一.概述 大多数Java程序员都曾经使用过java.util.StringTokenizer类.它是一个很方便的字符串分解器,主要用来根据分隔符把字符串分割成标记(Tok ...
- 循环遍历Java字符串字符的规范方法——类似python for ch in string
比如我将string作为CNN 文本处理输入: float [] input = new float[maxLength]; // 1 sentence by maxLenWords// int[] ...
- java字符串编程_java字符串抉择
下面我们就字符串连接方面分析. 1.String 打开String的源码,如图所示 会发现存储字符串的字符数值是final常量.再看St final修饰的属性为常量(值不可改变),要么在声明的同时赋值 ...
最新文章
- R语言构建xgboost文本分类模型(bag of words):xgb.cv函数交叉验证确定xgboost模型的最优子树个数、交叉验证获取最优子树之后构建最优xgboost模型并评估模型文本分类效能
- 菜鸟学算法一基础知识篇
- feign.RetryableException null executing post
- 如何使用gnvm自动更新Windows10操作系统上的nodejs
- Linq下有一个非常实用的SelectMany方法,很多人却不会用
- Java陷阱(一)——ArrayList.asList
- ExtJs2.0学习系列(1)--Ext.MessageBox
- 用css和html实现的一个forest logo
- deepin终端下载速度超慢解决方案
- hdu 2553(N皇后)
- eeupdate 更新MAC地址
- 博客日历的html代码,八种精美的博客日历代码
- R语言-基于集波士顿住房
- 21.	SCHEMATA
- Android Studio 设置打开layout.xml文件的默认视图
- 12 如何用网格策略网住收益?——实操篇
- ${pageContext.request.contextPath}的作用
- 洛谷 P1646 [国家集训队]happiness 网络流 最小割 Dinic+当前弧优化
- 【思维题】CodeForce 817A Treasure Hunt
- python保留字-Python保留字
热门文章
- 软件缺陷预测的两种定义
- 太原理工大学计算机专业多少分录取分数线,多少分能上山西太原理工大学,往年全国各省各专业录取分数线出炉...
- 计算机考试批处理试题,2015计算机三级考试pc技术模拟试题及答案(八)
- oracle schedule stop,Oracle调度Schedule特性(第八部分)-Windows和Window Groups
- 背景图自适应屏幕居中显示,且不变形
- 【Vue】IView之table组件化学习(二)
- 阿里发布AliGenie2.0系统,“百箱大战”用上视觉武器
- mysql5.6基于GTID主从复制设置
- namenode如何存储复本?
- Fckeditor PHP/ASP File Upload Vul