String的总结和应用

最近想记录下自己的学习历程,顺便来补充下基础,就从javase部分开始吧,下面来介绍一下String类的常用api:

首先String不是基本数据类型(基本数据类型:第一类:整型 byte short int long,第二类:浮点型 float double,第三类:逻辑型 boolean(它只有两个值可取true false) 第四类:字符型 char),而是一个类,一个被final修饰的类(所以该类不可被继承,不可被修改)这里将引出一个问题:究竟创建了几个对象?一个或两个。如果常量池中原来没有 ”xyz”, 就是两个。如果原来的常量池中存在“xyz”时,就是一个。==比较的是对象的地址,也就是是否是同一个对象;equal比较的是对象的值。(面试中经常问到,所以该记就记吧)在平时:replace,format用的还算比较多,但有时候比如URL的转义当中带有百分号,就不能使用format,但是可以使用replace来替换;

详细介绍:

1、字符串中包含的字符数,也就是字符串的长度。

int length():获取长度

2、根据位置获取位置上某个字符。

char charAt(int index)

3、根据字符获取该字符在字符串中的位置。

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在字符串中出现的位置。

4、int lastIndexOf(String str):反向索引。

5、判断字符内容是否相同,复写了object类中的equals方法。

boolean equals(str);

6、判断内容是否相同,并忽略大小写。

boolean.equalsIgnorecase();

7、获取字符串中的而一部分

String subString(begin);

String subString(begin,end);

8、将字符串转成大写或小写

String toUpperCsae() 大转小

String toLowerCsae() 小转大

9、将字符串两端的多个空格去除

String trim();

10、字符串格式化

String String.format("%s", "");

代码事例:

public class StringTest {
	public static void main(String[] args) {
		String oneStr="this is String test";
		//字符串的长度
		System.out.println("String length():"+oneStr.length());
		//老生常谈的话题:创建了几个对象!这个可以写点内容
		String twoStr=new String("This is a String");
		//如果想知道某个字符串当中是否包含于另一个字符串,可以使用如下方法:
		int isExist=oneStr.indexOf("is");//如果返回-1则不存在(通常我都是判断是否小于零)
		System.out.println("indexOf():"+isExist);
		//如果想比较两个字符串(分两种情况,一种是地址,一种是值。通常是比较值的很多)
		boolean result=oneStr.equals(twoStr);//通常选用最不可能为null的作为函数调用者,因为这样可以避免空指针
		System.out.println("equals():"+result);
		//方法charAt()用以得到指定位置的字符。
		System.out.println("charAt():"+oneStr.charAt(6));
		//subString()是截取字符串的参数是截取的起始坐标,可以和indxOf一起使用,效果更佳,含头不含尾也可以讲出来
		String subStr=oneStr.substring(3);
		System.out.println("substring():"+subStr);
		//组合事例
		String subIndexStr=oneStr.substring(oneStr.indexOf("is"),oneStr.indexOf("String"));
		System.out.println("一起使用:"+subIndexStr);
		//replace可以覆盖掉字符串中的指定内容,有则替换,没有则不替换,
		String replaceStr=oneStr.replace("is", "are");
		System.out.println("replace():"+replaceStr);
		//大小写转换
		String upStr=oneStr.toUpperCase();
		System.out.println("toUpperCase():"+upStr);
		String downStr=oneStr.toLowerCase();
		System.out.println("toLowerCase():"+downStr);
		//驱除前后的空格
		String tirmStr="     tirm ";
		System.out.println("trim():"+tirmStr.trim());
		//替换指定内容,比较有效的方法
		String formatStr="你好,%s";
		System.out.println("format():"+String.format(formatStr, "世界"));
	}
 
}

运行结果:

String length():19

indexOf():2

equals():false

charAt():s

substring():s is String test

一起使用:is is

replace():thare are String test

toUpperCase():THIS IS STRING TEST

toLowerCase():this is string test

trim():tirm

format():你好,世界

更多内容敬请关注我的个人博客:镜花水月的博客     转载请带上出处链接,谢谢,www.noreplace.com

时间: 2024-11-20 14:58:14

String的总结和应用的相关文章

C# 引用类型之特例string

在C#编程的时候经常会使用字符串(string)类型,它也是引用类型,但是处处都不作为引用的用法来使用,实属特例,下来我一一罗列出来,供自己记忆方便: 1)字符串的直接赋值:本身字符串就是引用类型,应该使用  new 对象方法一个实例,但是微软为了方便大家,可以直接定义字符串变量 并且赋值操作,例如: string a = "我的中国心"; ,这样只是简化我们的操作: 2)一个字符串赋值给另一个字符串变量:正常的引用类型会将两个引用变量指向同一个地址,但是一个字符串变量赋值给另一个字符

C++ String 及其与char[]的比较

在学习C++之前  一般都是学过了C语言了 在C语言中   我们对字符串进行保存操作  使用的是char[] 但是在C++中    string比char[]的使用更为频繁  常见    下面稍微讲一下我对于string的认知 1.与其他的标准库类型一样   用户程序需要使用String类型对象  就必须包含相关的头文件   (为了编写方便   需要提供合适的using声明) #include <string> using std::string; 2.string对象的定义与初始化 stri

java String 类 基础笔记

字符串是一个特殊的对象. 字符串一旦初始化就不可以被改变. String s = "abc";//存放于字符串常量池,产生1个对象 String s1=new String("abc");//堆内存中new创建了一个String对象,产生2个对象 String类中的equals比较字符串中的内容. 常用方法: 一:获取 1.获取字符串中字符的个数(长度):length();方法. 2.根据位置获取字符:charAt(int index); 3.根据字符获取在字符串中

The constructor ClassPathXmlApplicationContext(String) refers to the missing type BeansException

"The constructor ClassPathXmlApplicationContext(String) refers to the missing type BeansException" "构造函数ClassPathXmlApplicationContext(字符串)是指缺失类型BeansException" 出现错误的原因:jar没有正确引入,即使表面上你能import包. import org.junit.Test; import org.spring

float类型如何转换为string类型

在一些很大的float类型的地方会用科学记数法表示,这个时候如果想完整记录下来,还是得转字符串,这里书写一个float类型转string类型的方法 <?php function float_to_string($float=0) { if(stripos($float, "e")!==false) { $tmp = explode("e",strtolower($float)); $float=bcmul($tmp[0], bcpow(10, $tmp[1])

JAVA: String详解

String 类用来存储字符串 ,是不可变的. 1. 基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值. 2. 复合数据类型(类) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false.用 str.equals(str2) 方法来比较字符串的值是否相等. 3. len

TypeError: string indices must be integers, not str

1. TypeError: string indices must be integers, not str 字符串类型取第index个字符的时候,应该传入int而不是str.如 view source print? 1 a='abcdef' 2 print a[0] 3 #而不是 print a['0'] 更常见的情况是把一个string当成了字典在使用 :should_be_dict_but_string['id'] .这样的错误

to String()用法

toString()的使用: * * 1.java.lang.Object类中toString()定义如下: * public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } * * 2. 当我们打印一个对象的引用时,实际上就是调用了其toString() * * 3. 像String.Date.File.包装类等重写了Object类中的toString

186. Reverse Words in a String II

https://leetcode.com/problems/reverse-words-in-a-string-ii/#/description Given an input string, reverse the string word by word. A word is defined as a sequence of non-space characters. The input string does not contain leading or trailing spaces and

实现一个函数clone,使JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制

实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number.String.Object.Array.Boolean)进行值复制. 1 /** 对象克隆 2 * 支持基本数据类型及对象 3 * 递归方法 */ 4 function clone(obj) { 5 var o; 6 switch (typeof obj) { 7 case "undefined": 8 break; 9 case "string": o = obj + &q