string类有可以调换方向的函数吗_String类中常用的操作

一、获取:

1、获取字符串的长度(注意是方法,不是跟数组的属性一样的)

int length();

1 public static void getLength(){

2 String s = "java01";

3 int len = s.length();

4 System.out.println(len);

5 }

2、根据位置,获取该位置的那一个字符(只能是单个字符)

char charAt(int index);

1 //根据指定位置获取对应的那个字符,只能是一个字符不能是字符串

2 public static void getChar(){

3 String s1 = "java01";

4 char ch = s1.charAt(3);

5 System.out.println(ch);

6 //s1.charAt(45);当访问到字符串中不存在的角标是会发生StringIndexOutOfBoundsException,即字符串角标越界异常

7 }

3、根据字符或字符串获取索引,即根据字符或字符串获取该字符或字符串在整个字符串中的位置,如果字符串中没有该字符或字符串会返回-1

int indexOf(int ch):返回的是ch在字符串中第一次出现的位置

int indexOf(int ch,int fromIndex):从fromIndex指定位置开始查找,获取ch在字符串中出现的位置

int indexOf(String str):返回的是str在字符串中第一次出现的位置

int indexOf(String str,int fromIndex):从fromIndex指定位置开始查找,获取str在字符串中出现的位置

1 public static void getIndexOf(){

2 String s = "javascript";

3 int x1 = s.indexOf('s');

4 int x2 = s.indexOf('a',2);

5 int x3 = s.indexOf("script");

6 int x4 = s.indexOf("script",2);

7 System.out.println("x1="+x1+",x2="+x2+",x3="+x3+",x4="+x4);

8 }

4、反向索引一个字符或字符串出现的位置

public int lastIndexOf(int ch) 从字符串的最后向前查找,指定的字符是否存在,如果存在则返回位置,如果不存在则返回-1

public int lastIndexOf(int ch,int fromIndex) 从字符串的指定的末尾向前查找,指定的字符是否存在,如果存在则返回位置,如果不存在则返回-1

1 public static void getLastIndexOf() {

2 String s = "javascript";

3 int x = s.lastIndexOf('a');

4 System.out.println("x="+x);

5}

5、获取字符串中的一部分,即获取子串

String substring(begin);//从指定位置开始到结尾包含头

String substring(begin,end);//,指定开始和结尾 包含头不包含尾

1 public static void getSubstring(){

2 String s1 = "javascript";

3 String s2 = s1.substring(4);

4 String s3 = s1.substring(0,5);

5 System.out.println("s2="+s2+",s3="+s3);

6 }

二、转换:

1、将字符数组转成字符串

构造函数:

String(char[])

Stirng(char[],fffset,count):将字符数组中的一部分转换字符串

静态方法:(直接用String类名调用,如:String s = String.copyValueOf())

static String copyValueOf(char[]);

static String copyValueOf(char[] ,int offset, int count);(offset表示起始位,count表示个数.如果超过了字符数组的长度,也发生字符串角标越界)

//ValueOf这个方法除了可以将字符数组变成字符串之外,也可以将其他基本数据类型变成字符串

static String valueOf(char[]);

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

1 public static void CharsToString(){

2 char[] arr ={'j','a','v','a','s','c','r','i','p','t'};

3 //通过String类的构造函数将字符数组转成字符串(可以将字符数组的一部分转成字符串)

4 String s1 = new String(arr);

5 String s2 = new String(arr,2,7);

6 System.out.println("s1="+s1+",s2="+s2);

7

8   //通过String类中的静态方法将字符数组转成字符串(可以将字符数组的一部分转成字符串)

9 String s3 = String.copyValueOf(arr);

10 String s4 = String.copyValueOf(arr, 2, 7);

11 System.out.println("s3="+s3+", s4="+s4);

12 }

2、将字符串转成字符数组

char[] toCharArray();

1 public static void StringToChar(){

2 String s = "javascript";

3 char[] arr = s.toCharArray();

4 for(char arrs : arr){

5 System.out.println(arrs);

6 }

7 }

3、将字节数组转成字符串(只能用构造函数)

String(byte[])

Stirng(byte[],fffset,count):将字节数组中的一部分转

Stirng(byte[],String charsetName)(通过使用指定的charset解码制定的byte数组,构造一个新的String)

String info = "小白是一个无节操,无干爹,无底线的三无少年";

//把字符串转换成字节数组

byte[] bytes = info.getBytes();

for(int i = 0;i

System.out.print(bytes[i]+",");

}

System.out.println();

//把字节数组转换成字符串

String s1 = new String(bytes);

System.out.println("转换后的字符串为:"+s1);

String s2 = new String(bytes,0,16);//结果是:小白是一个无节操,因为一个汉字是两个字节,如果是15的话最后一个汉字打印的是一个? 因为找不到

System.out.println("s2="+s2);

String s3 = new String(bytes,"gbk");//系统是gbk编码,如果这里用了utf-8会变成乱码

System.out.println(s3);

4、将字符串转成字节数组(字符串和字节数组在转换过程中,是可以指定编码表的。)

byte[] getBytes();

1 public static void StringToBytes(){

2 String s1 = "javascript";

3 byte[] arr = s1.getBytes();

4 for(byte arrs : arr){

5 System.out.println((char)arrs);

6 }

7 }

String info = "小白是一个无节操,无干爹,无底线的三无少年";

//把字符串转换成字节数组

byte[] bytes = info.getBytes();

for(int i = 0;i

System.out.print(bytes[i]+",");

}

5、将基本的数据类型转成字符串

static String valueOf(int)

static String valueOf(double)

3+"";     String.valueOf(3);//这是一样的

6、将字符串转成大写或者小写

String toUpperCase();

String toLowerCase();

1 public static void ToUpper_Lower(){

2 String s1 = "javascript";

3 String s2 = s1.toUpperCase();//转成大写

4 String s3 = s2.toLowerCase();//转成小写

5 System.out.println("s2="+s2+",s3="+s3);

6 }

三、判断:

1、字符串中是否含某一个子串(不能判断是否包含某一个字符,只能是字符串)

boolean contains(String str);        //返回一个字符串是否存在,存在返回true 不存在返回false

特殊之处:indexOf(str)可以索引str第一次出现位置,如果返回-1,表示该str不在字符串中存在  所以也可以用于对指定判断是否包含 该方法既可以判断又可以获取出现的位置

只用于判断时用contains,既要判断又要获取位置用indexOf

1 public static void containsDemo() {

2 String s = "javascript";

3 boolean b = s.contains("java");

4 System.out.println(b);

5 }

2、字符中是否有内容

boolean isEmpty();       //就是判断长度是否为0

1 public static void isEmptyDemo() {

2 String s = " ";//空格也是一个字符

3 boolean b = s.isEmpty();

4 System.out.println(b);

5 }

3、字符串是否以指定的内容开头与字符是否是以指定内容结尾(接受的是字符串)

boolean startsWith(str);

boolean startsWith(str,int toffset);//从指定的位置开始判断是否以指定的内容开头

boolean endsWith(str);

1 public static void startsWith_endsWith() {

2 String s = "Array.java";

3 boolean b1 = s.startsWith("Array");//开发中可以用于判断该文件名称是否是Array单词开头

4 boolean b2 =s.endsWith(".java");//开发中可以用于判断该文件名的后缀是否是.java文件

5 System.out.println("b1="+b1+",b2="+b2);

6 }

4、判断字符串内容是否相同

(复写了Object类中的equals方法,定义了自己的比较方式,比较字符串内容是否相同,相同为true,不相同为false)  boolean equals(str);

1 public static void equalsDemo() {

2 String s1 = "javascript";

3 String s2 = "javascript";

4 String s3 = "html+CSS";

5 boolean b1 = s1.equals(s2);

6 boolean b2 = s1.equals(s3);

7 System.out.println("b1="+b1+",b2="+b2);

8 }

判断内容是否相同,并忽略大小写    boolean equalsIgnoreCase();

5、对两个字符串进行自然顺序的比较(该方法能比较出谁大谁小,而equals只是比较两个对象是否相等)

int compareTo(string);

对象之间的比较用的是compareTo方法,基本数据类型数据之间的比较用的是大于号,小于号,等于号这些运算符

1 public static void compareToDemo() {

2 String s1 = "javascript";

3 String s2 = "javascript";

4 String s3 = "java";

5 int b1 = s1.compareTo(s2);

6 int b2 = s1.compareTo(s3);

7 int b3 = s3.compareTo(s1);

8 System.out.println("b1="+b1+",b2="+b2+",b3="+b3);

9 }

四、其他常用的方法:

1、替换(将字符串中的某个字符或某部分字符串替换)

public String replace(char oldChar,char newChar) 替换指定字符

public String replace(CharSequence target,CharSequence replacement) 替换指定字符串

public String replaceAll(String regex,String replacement) 替换指定字符串

public String replaceFirst(String regex,String replacement) 替换第一个满足条件的字符串

1 public static void replaceDemo() {

2 String s = "javascript";

3 String s1 = s.replace('a', 'b');

4 String s2 = s.replace("java", "php");

5 System.out.println("s1="+s1+",s2="+s2);

6 }

public class EightFour {

public static void main(String[] args) {

String info = "小白长a的吧,像一个背靠着d墙没牙的,老头在喝粥";

//替换指定字符

String s1 = info.replace(',' , ':');

System.out.println(s1);

//替换指定字符串

String s2 = info.replace("小白", "大黑菜");

System.out.println(s2);

String s3 = info.replaceAll("的", "fuck");

String s4 = info.replaceAll("[a-z]", "&");//第一个参数表示的是正则表达式,这里表示a到z的字母都可以替换成&符号

System.out.println(s3);

System.out.println(s4);

String s5 = info.replaceFirst("一", "#");//也可以像replaceAll方法一样使用正则表达式

System.out.println(s5);

}

}

2、切割(返回的是一个字符串数组)

public String[] split(String regex) 按照指定的字符串拆分

public String[] split(String regex,int limit) 拆分字符串,并指定拆分的个数

1 public static void splitDemo() {

2 String s = "java,javascript,php";

3 String[] ss = s.split(",");//这里要是双引号

4 for(String sss : ss){

5 System.out.println(sss);

6 }

7 }

public class EightSix {

public static void main(String[] args) {

String info = "怀才就像a怀孕-时间久了才能b-看的c出来";

String[] s1 = info.split("-");

for(int i = 0; i

System.out.println(s1[i]);

}

String[] s2 = info.split("[a-z]");//参数可以使用正则表达式

for(int i = 0; i

System.out.println(s2[i]);

}

String[] s3 = info.split("-", 0);//第二个参数表示,将这个字符串拆分为多少个字符串,如果传入的个数超过了第一个参数的个数,那么有多少拆多少,传入0也是有多少拆多少

for(int i = 0; i

System.out.println(s3[i]);

}

}

}

3、将字符串两端的多个空格去除  ,中间的空格不去

String trim();

1 public static void trimDemo(){

2 String s = " javas cript "

3 String ss = s.trim();

4 System.out.println(s);

5 System.out.println(ss);

6 }

4、字符串连接操作

public String concat(String str)

String info = " Time是把杀猪刀,黑了 木耳,紫了葡萄,软了香蕉。 ";

String s4 = info.concat("我的fuck");

System.out.println(s4);

5、比较(比较两个字符串内容是否相同)

equals(String str):复写了Object中的equals方法,重新定义为比较两个字符串的内容是否相同并区分大小写

public class Text {

public static void main(String[] args) {

String s1 = "WeChat";

String s2 = "zhong";

System.out.println(s1.equals(s2));

}

}

6、equalsIgnoreCase(String str):

比较两个字符串的内容是否相同,不区分大小写

public class Text {

public static void main(String[] args) {

String s1 = "WeChat";

String s2 = "wechat";

System.out.println(s1.equalsIgnoreCase(s2));

}

}

该方法这实际应用中用的非常多,比如我们在编写一个用户登录界面的时候,需要将用户的姓名与数据库里面的姓名进行比较,这时如果我们用equals方式来比较,就可能出错,比如程序可能认为Tom和tom不是同一个人,这样程序就不够友好了,想要让程序友好一些,不出现这样的错误,就要用  方法equalsIgnoreCase来做姓名这个字段的验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你真的懂js获取可视区宽高吗

可能你会觉得获取可视区宽高不是很简单吗 原生js获取高度不就是就window.innerHeight一句话的事,可是真的这么简单吗 来看个测试页面,如果页面带有横向纵向的滚动条,我们打印出各个高度进行查看对比 顺便你也可以看看document.body和document.documentEl…

工作第七天

今天完成了一个简易的oauth服务器,通过login跳转到oauth保存uri和client_id,等待用户登录判断是否能get到user同时判断用户名和密码是否匹配,重定向到uri同时增加code参数,通过判断是否有code重定向回oauth,如果有code…

网上linux实验平台,Linux操作系统实验教程

第一部分 Linux操作系统基本原理.第1章 Linux操作系统简介1.1 Linux的渊源和发展简史1.2 Linux的基本特性1.3 Linux内核的开发模式与内核版本号1.4 Linux发行版介绍1.5 Linux内核源代码组织结构1.6 学习Linux的辅助软件介绍第2章 Linux的进程管理2.1 进程与进程描述符2.2 进程状…

詹金斯的Maven报告

代码质量是一个敏感的话题。 它会影响您的维护成本以及客户满意度。 更不用说您的开发人员使用代码的动力。 谁想要修复难看的代码,对吗? 讨论代码质量总是需要事实和数字! 因此,这是一个简短的教程,介绍如何创建一些…

python实现矩阵叉乘_矩阵乘法的纯Python实现 | 离开Python库!!

点击关注我哦一篇文章带你了解矩阵乘法的纯Python实现在《这篇文章》中,我们有简单提到“矩阵乘法”的相关知识,如果你不记得了,可以复习一下这张图片。想起来了没?本篇文章将深入探讨在没有机器学习库的情况下如何从零实现矩阵乘…

Github Actions:再次改变软件开发

本文转自 FEPulse 公众号(微信搜索 FEPulse,精选国内外最新前端资讯,为你把握前端脉搏)。 Github Actions 是 GitHub Universe 大会上发布的,被 Github 主管 Sam Lambert 称为“再次改变软件开发”的一款重磅功能&…

为别人软件加入广告或者密码(特别思路)

洪雨的的这款软件比较奇特,是忽然想到一个思路,然后实现了一下。 exe文件都有一个很有趣的地方,只要内部完整,就可以运行。比如一个exe文件,我们运行的时候,电脑知道他是exe所以可以直接运行。假如洪雨将它…

c free语言自定义函数,C 语言free函数的工作原理

今天在网上看到了这样一个问题,“如果malloc 了一块字符串的内存,然后,它改变了这个字符串的大小,问会不会有一部分内存没有被释放掉。”这个问题,以前的确没有仔细想过。当然,我觉得是肯定会释放掉的&…

Django 错误跳转页面

原网站:https://blog.csdn.net/goupper1991/article/details/50736826 django404,500错误自定义页面: 将 改为 1.修改settings文件DEBUG FalseALLOWED_HOSTS [127.0.0.1, localhost]或者ALLOWED_HOSTS [*]2.配置urls文件from django.conf.…

ElasticSearch-Hadoop:从Hadoop到ElasticSearch的产品视图计数索引和客户顶部搜索查询...

这篇文章涵盖了如何使用ElasticSearch-Hadoop从Hadoop系统读取数据并在ElasticSearch中对其进行索引。 它涵盖的功能是在最近n天中为每个客户的产品浏览量计数和热门搜索查询编制索引。 分析的数据可以进一步在网站上使用,以显示最近浏览过的客户,产品浏…

伸缩轨道_深度解析——伸缩喷漆房为什么这么受欢迎!

伸缩式喷漆房是一种环保喷漆设备,它可以在使用时,自动展开形成封闭或半封闭的环保喷漆房,不使用时收缩合拢到一处的特殊环保喷漆房设备,由于伸缩式喷漆房外观大方、简单实用且投资费用低,它在现代涂装应用中越发广泛。…

snippet,让你编码效率翻倍

为什么谈到Snippet 今天下午在用vscode做小程序的时候,发现很不方便,因为商店里提供的代码片段极为有限,而且平时几乎每天都需要用到代码片段,所以就在思考他们是怎么做到给别人提供代码的,我可以自定义代码片段吗。然…

键盘keydown值表

键盘名称键值(keycode)键盘名称键值(keycode)BackSpace8Tab9Clear12Enter13Shift_L16Control_L17Alt_L18Pause19Caps_Lock20Escape27Space32Prior33Next34End35Home36Left37Up38Right39Down40Select41Print42Execute43Insert45Del…

c语言算ex自定义函数,用C语言写定积分的通用函数:sin(x),cos(x),eX.

/************************************************************//*sin,cos,exp函数已经存在于系统的数学函数库中,程序开头需要定义math头文件*//************************************************************/#include/****************主函数****************…

day12-HTML基础之DOM操作

DOM(Document Object Model 文档对象模型) 一个web页面的展示,是由html标签组合成的一个页面,dom对象实际就是将html标签转换成了一个文档对象。可以通过dom对象中js提供的方法,找到html的各个标签。通过找到标签就可以…

小程序源码 租房管理系统_如何通过租房小程序开发快速引流

租房市场在整个房产市场占据了极大一部分市场份额,而随着租售同权政策的提出、房价的不断提升,租房市场份额将进一步扩大。合肥小程序开发智速新媒体公司传统的租房方式不管是出租方还是租房客户,彼此之间的消息不对等、沟通困难等因素导致房…

REST 101开发人员专用

本地代码执行 诸如C之类的高级语言中的函数将被汇编为Assembly中的过程 。 它们增加了一个间接级别,使我们不必考虑内存地址。 诸如Java之类的面向对象语言中的方法和多态性增加了另一种间接性 ,使我们不必考虑一组相似功能的特定变体。 尽管有这些间…

一个基于Bmob的OPPO锁屏壁纸小程序,写过之后发现...好像没什么卵用...一脸懵逼

小程序之前写的,也就前段时间,毛毛糙糙的写了第一版... 因为使用OPPO手机,所以有个锁屏杂志的东西,里面的图片每天都是由OPPO官方的人进行精选然后推送给用户的,图片菲菲菲菲菲常漂亮,看到网上很多人提取不…

SQLAlchemy 操作数据库

SQLAlchemy 操作数据库 SQLAlchemy为Python提供了不同数据库的统一接口,采用ORM的方式操作数据库,简洁优雅 一、安装 直接通过pip安装即可 pip install sqlalchemy 二、连接数据库 这里用小巧的sqlite来做测试 from sqlalchemy import create_engine# 创…

e会学上的c语言答案,e会学刷课脚本_e会学代刷

e会学刷课脚本_e会学代刷2020-06-17 04:10:15【刷课平台】【在线刷课】68在Excel 2010中,假定一个单元格的地址表示为$D25,则该单元格的行地址为( )。A、DB、25C、30D、45正确答案: B69在自定义序列对话框中输入新序列时,序列内容间用什么分隔。( )A、中文逗号B、回…