zoukankan      html  css  js  c++  java
  • java基础---字符串string

    1、字符创的概念

      java字符串就是Unicode字符序列。例如,串“Javau2122”由5个Unicode字符J、a、v、a和TM。java没有内置的字符串类型,而是在标准库Java类库中提供了一个预定义类String。

    2、子串

      String类的substring方法可以从一个较大的字符串提取出一个子串。

    String    greeting ="Hello";
    String s = greeting.substring(0,3);
    

      创建了一个由字符“Hel”组成的字符串。 substring方法的第二个参数是不想复制的第一个位置。这里要复制位置为0、1和2(从0到2, 包括0和2)的字符。在substring中从0开始计数,直到3为止,但不包含3。

      substring的工作方式有一个优点:容易计算子串的长度。字符串s.substring(a, b)的长度为ba。例如,子串“Hel”的长度为3-0=3。

    3、拼接

      与大多数程序设计语言一样,Java语言允许使用+号连接两个字符串。

    String  str1 = "I Love java!";
    String str2= "I Love China!";
    String str3 = str1+str2;
    

      上述将“I Love Java!I Love China”赋值给了str3;e(注意,单词之间没有空格,+号按照给 定的次序将两个字符串拼接起来)。 当将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串。

    4、不可变字符串

      String类没有提供用于修改字符串的方法,如果希望将greeting的内容修改为“Help!”,不能直接地将greeting的最后两个位置的字符修改为‘P’和‘!’!但是可以用替换来做出“修改”这一意义。

      greeting = greeting.substring(0,3)+"p!";

    上述语句将greeting当前值修改为Help!

      由于不能修改Java字符串中的字符,所以在Java文档中将String类对象称为不可变字符串, 如同数字3永远是数字3一样,字符串“Hello”永远包含字符H、e、l、l和o的代码单元序列, 而不能修改其中的任何一个字符。当然,可以修改字符串变量greeting,让它引用另外一个字 符串,这就如同可以将存放3的数值变量改成存放4一样。

    5、检测字符串是否相等

      可以使用equals()方法检测两个字符串内容是否相等。

      s.equals(t); 如果字符串s与字符串t相等,返回true,否则返回false。需要注意,s和t都是字符串变量,也可以是字符串常量。

      一定不能用“==”来检测两个字符串是否相等!这个运算符只能够确定两个字符串是否防放置在同一个位置上,比较的是内容和地址都要相等时2个字符串才会相等。当然,如果字符串放在同一个位置上,它们必然相等,但是完全有可能内容相同的多个字符串在拷贝放置在不同位置上。

      String greeting  = "hello";

      if(gerrting =="hello")

      //probably  true  

      if(greeting.substring(0,3)=="hel")

      //probably false;

      如果虚拟机始终将相同的字符串共享,就可以使用"=="运算符判断是否相等,但是实际上只有字符串常量才是共享的,而+或substring 等操作产生的结果并不是共享的。

    6、字符串API

    • char charAt (int index) 返回给定位置的代码单元。除非对底层的代码单元感兴趣,否则不需要调用这个方法。

    • int codePointAt(int index) 5.0 返回从给定位置开始或结束的代码点。

    • int offsetByCodePoints(int startIndex, int cpCount) 5.0 返回从startIndex代码点开始,位移cpCount后的代码点索引。

    • int compareTo(String other) 按照字典顺序,如果字符串位于other之前,返回一个负数;如果字符串位于other之后, 返回一个正数;如果两个字符串相等,返回0。

    • boolean endsWith(String suffix) 如果字符串以suffix结尾,返回true。

    • boolean equals(Object other) 如果字符串与other相等,返回true。

    • boolean equalsIgnoreCase(String other) 如果字符串与other相等(忽略大小写),返回true。

    • int index0f(String str)

    • int index0f(String str, int fromIndex) Java基本的程序设计结构 47 java.lang.string 1.0

    • int index0f(int cp) • int index0f(int cp, int fromIndex) 返回与字符串str或代码点cp匹配的的第一个子串的开始位置。这个位置从索引0或 fromIndex开始计算。如果在原始串中不存在str,返回-1。

    • int lastIndex0f(String str)

    • int lastIndex0f(String str, int fromIndex)

    • int lastindex0f(int cp) • int lastindex0f(int cp, int fromIndex) 返回与字符串str或代码点cp匹配的最后一个子串的开始位置。这个位置从原始串尾端或 fromIndex开始计算。

    • int length( ) 返回字符串的长度。

    • int codePointCount(int startIndex, int endIndex) 5.0 返回startIndex和endIndex-1之间的代码点数量。没有配成对的代用字符将计入代码点。

    • String replace(CharSequence oldString,CharSequence newString) 返回一个新字符串。这个字符串用newString代替原始字符串中所有的oldString。可以用 String或StringBuilder对象作为CharSequence参数。

    • boolean startsWith(String prefix) 如果字符串以preffix字符串开始,返回true。

    • String substring(int beginIndex) • String substring(int beginIndex, int endIndex) 返回一个新字符串。这个字符串包含原始字符串中从beginIndex到串尾或endIndex-1的所 有代码单元。

    • String toLowerCase( ) 返回一个新字符串。这个字符串将原始字符串中的所有大写字母改成了小写字母。

    • String toUpperCase( ) 返回一个新字符串。这个字符串将原始字符串中的所有小写字母改成了大写字母。

    • String trim( ) 返回一个新字符串。这个字符串将删除了原始字符串头部和尾部的空格。

  • 相关阅读:
    知乎 : 有什么你认为很简单的问题实际的证明却很复杂?
    民科吧 的 一题 : ∂ f / ∂ x =
    知乎: Lurie 的 derived algebraic geometry 有多重要?
    说说 网友 专业证伪 的 那道 几何题
    在 《数学问题,连接两个点的曲线旋转所成曲面中,面积最小的曲线是什么?》 里 的 讨论
    证明 夹逼定理 和 洛必达法则
    一道数学题 : 数列 { bn } 收敛, 证明 { an } 也收敛
    一道数学题 : f ( 2^x ) + f ( 3^x ) = x , 求 f ( x )
    网友 lzmsunny96 的 一个 分数 分解题
    我 搞了一个 尺规作图 不能 实现 三等分角 的 证明
  • 原文地址:https://www.cnblogs.com/Ivan-Fu/p/7704484.html
Copyright © 2011-2022 走看看