zoukankan      html  css  js  c++  java
  • String类的用法

     练习如何创建一个类。

     1 package create;
     2 
     3 public class Newstring {
     4     String aa;
     5     public Newstring() {
     6         // TODO Auto-generated constructor stub
     7     }
     8     public Newstring(char a[]){
     9          aa=new String(a);
    10     }
    11     public Newstring(char a[],int offset,int length){
    12          aa=new String(a,offset,length);
    13     }
    14     public Newstring(String a){
    15         // aa=new String(a);//可不可以让两个字符串直接相等呢?可以
    16         aa=a;
    17     }
    18     public void printString(){
    19         System.out.println("字符串是"+aa);
    20     }
    21 }

    然后,关于String类的一大堆用法就出来了。

     1 package create;
     2 
     3 public class Usestring {
     4     public Usestring() {
     5         // TODO Auto-generated constructor stub
     6         char c[]={'t','o','m','c','a','t'};
     7         Newstring a=new Newstring(c,0,4);
     8         a.printString();
     9         String s="bury me in satin";
    10         Newstring b=new Newstring(s);//.toCharArray(),0,4);
    11         b.printString();
    12     }
    13     public void show(String a,String b,int begin,int end){
    14         int length1=a.length();
    15         int where1=a.indexOf(b);
    16         int where2=a.lastIndexOf(b);
    17         char c1=a.charAt(begin);
    18         
    19         String str1=a.trim();//忽略前导空格和尾部空格
    20         String str2=a.toUpperCase();
    21         String str3=a.replaceAll("abc", "123");
    22         String str4=a.substring(begin, end);
    23         boolean be=a.startsWith("  ");
    24         boolean en=a.endsWith("iop");
    25         boolean issame=a.equalsIgnoreCase(b);
    26         int cp="abc".compareToIgnoreCase(b);
    27         String[] str5=a.split("bc");
    28         
    29         System.out.println("字符串长度"+length1+"
    "+
    30                            "找到字符串位置(匹配)"+where1+" "+where2+"
    "+
    31                            "在"+(begin+1)+"处"+c1+"
    "+
    32                            str1+" 
    "+str2+" 
    "+str3+" 
    "+str4+"
    "+
    33                            be+"
    "+en+"
    "+issame+"
    "+cp+"
    ");
    34         for(int i=0;i<str5.length;i++){
    35             System.out.println(" "+str5[i]);
    36         }
    37     }
    38 }

    这个里面还有个判断String对象是否相等的用法,一般,判断String对象都是用equals()方法,而不用"=="比较运算符。

    原因是什么呢?

    假设有两个基本数据类型,我们都知道这是可以用equals判断的,可是String是对象啊,是不一样滴。

    基本数据类型地址里面放的就是数据,比比就知道是什么了,而,对象的内存地址里面放的是引用,私以为用c的思想来说就是指针,指到对象放的地方(可以这么腹诽,程度太低,按着这个理解可以,真实情况不知道哦)。

    那么比较String类的对象就只能用String类重写Object类的equals方法了,他会深入到本质的判断对象的内容是否一样的呢。

    不扯太多,大牛的博客写得超级好,自己百度吧,这个挺重要的哦。

    主类

     1 package mainfunction;
     2 
     3 import create.*;
     4 //import create.Newstring;
     5 public class Main {
     6 
     7     /**
     8      * @param args
     9      */
    10     public static void main(String[] args) {
    11         // TODO Auto-generated method stub
    12         Usestring us=new Usestring();
    13         us.show("  qweabcrty  abcuiop", "abc", 0, 9);
    14     }
    15 
    16 }
    贵有恒何必三更眠五更起,最无益只怕一日曝十日寒。
  • 相关阅读:
    HDU Problem 1811 Rank of Tetris【拓扑排序+并查集】
    POJ Problem 2367 Genealogical tree【拓扑排序】
    HDU Problem 2647 Reward【拓扑排序】
    HDU Problem 1285 确定比赛名次【拓扑排序】
    HDU Problem HDU Today 【最短路】
    HDU Problem 3665 Seaside【最短路】
    HDU Problem 一个人的旅行 【最短路dijkstra】
    HDU Problem 1596 find the safest road【最短路dijkstra】
    Beyond Compare文本合并进行内容替换要注意什么
    用这些工具都可以比较代码的差异
  • 原文地址:https://www.cnblogs.com/carazk/p/5844444.html
Copyright © 2011-2022 走看看