本文主要是介绍JAVA string详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
package string;
import org.junit.Test;
import java.sql.SQLOutput;
public class Stringtext {
@Test
public void _string(){
//substring()方法:对字符串进行切片
String greeting="hello";
String s=greeting.substring(0,3);
System.out.println(s);
/**
* 输出:hel
*/
//拼接
String expletive="Expletive";
String PG13="delect";
String massage=expletive+PG13;
System.out.println(massage);
System.out.println("the answer is " + massage);
String all=String.join("/","S","M","L","Xl");
System.out.println(all);
/**
* 输出:
* Expletivedelect
* the answer is Expletivedelect
* S/M/L/Xl
*/
/**
* 不可变字符串
* String类中没有提供修改字符串中某个字符串的方法,Java中一般通过拼接的方式来修改字符串
* 在java文档中将String类对象称为是不可变的(immutable),如同数字3永远是数字3一样,字符串“hello”永远包含字符h、e、l、l、o的代码单元序列,
* 你不能修改这些值,只能修改字符串变量的引用
*/
//检查字符串是否相等
/**
* 在检验字符串是否相等时,一般使用equals()方法检测,一定不能使用==运算符检测是否相等
* ==运算符只能确定两个字符串是否是同一个引用。当然,如果字符串在同一个位置,它们必然相等,但是完全有可能在不同的位置
* 如果虚拟机始终将相同的字符串共享,就可以使用==来检测,但实际上只有字符串字面量是共享的,而+或者substring等操作得到的字符串并不共享
*/
System.out.println("hello".equals(greeting)+" "+"Hello".equalsIgnoreCase("hello"));
System.out.println(greeting.compareTo("hello")+" "+greeting.compareToIgnoreCase("Hello"));
System.out.println("hello".substring(0,3));
System.out.println("hello".substring(0,3)=="hel"?true:false);
/**
* 输出
* true true
* 0 0
* hel
* false
*/
//空串与null
/**
* 空串""是指长度为0的字符串,可以使用str.length()==0或者str.equals("")来检查str是否为空串
* null是一个特殊的值,表示目前没有任何对象与该对象关联,检查一个对象是否为null一般使用str==null
* 检查一个字符串既不是空串也不是null,一般使用str!=null&&str.length()!=0
*/
//String API
/**
* String类中包含50多个方法,下面列举一些常用的方法
* char charAt(int index) 返回给定位置的代码单元
* int codePointAt(int index) 返回冲从给定位置开始的码点
* int offsetByCodePoints(int startIndex,int cpCount) 返回从startIndex码点开始,cpCount个码点后的码点索引
* int compareTo(String other) 按照字典顺序,如果字符串位于other之前返回一个负数,之后返回一个正数,相等返回0
* IntSrream codePoints() 将这个字符串的码点作为一个流返回。调用toArray将它们放在一个数组里
* boolean empty()
* boolean blank() 如果字符串为空或者由空格组成,返回true
* boolean startsWith(String prefix)
* boolean endsWith(String suffix) 如果字符串以prefix开头或者以suffix结尾,返回true
* int indexOf(String str)
* int indexOf(String str,int fromIndex)
* int indexOf(int cp)
* int indexOf(int cp,int fromIndex)
* 返回与字符串str或者码点cp匹配的第一个子串的开始位置的索引。从0或者fromIndex开始匹配。如果不存在则返回-1
* int lastIndexOf(String str)
* int lastIndexOf(String str,int fromIndex)
* int lastIndexOf(int cp)
* int lastIndexOf(int cp,int fromIndex)
* 返回与字符串str或者码点cp匹配的最后一个子串的开始位置的索引。从0或者fromIndex开始匹配。如果不存在则返回-1
* int length() 返回字符串代码单元的个数
* String replace(CharSequence oldString,CharSequence newString)
* 返回用newString代替原字符串中所有的oldString,可以用String或StringBuilder对象作为CharSequence参数
* String substring(int beginIndex)
* String substring(int beginIndex,int endIndex)
* 返回一个新字符串。这个字符串包含原字符串中从beginIndex到字符串末尾或者endIndex的所有代码单元
* String toLowerCase()
* String toUpperCase() 返回一个新字符串。这个字符串将原字符串改为全部大写或者全部小写
* String trim()
* string strip()
* 返回一个新字符串。这个字符串将删除原始字符串头部和尾部小于或等于U+0020的字符(trim)或空格(strip)
* String join(CharSequence delimiter,CharSequence... elements) 返回一个新字符串,用给定的界定符连接所有元素
* String repeat(int count) 返回一个新字符串。这个字符串将原字符串重复count次
*/
//构造字符串
/**
*有时候,需要由较短的字符串构建字符串,例如,按键或者来自文件中的单词。采用字符串拼接即耗时又耗空间,
* 使用StringBuilder类就可以避免这个问题的发生
*/
char ch=' ';
StringBuilder builder=new StringBuilder();
builder.append("hello");
builder.append(ch);
builder.append("word");
String completedString1=builder.toString();
System.out.println(completedString1);
builder.setCharAt(0,'H');
System.out.println(builder.toString());
builder.insert(1,'!');
System.out.println(builder.toString());
builder.delete(1,2);
System.out.println(builder.toString());
/**
* 输出
* hello word
* Hello word
* H!ello word
* Hello word
*/
}
}
这篇关于JAVA string详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!