03-Java基础-String类&数组

String类、StringBuffer 和 StringBuilder 类、int 与 String转化、数组排序 查找

String类

注意:String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。
如果需要对字符串做很多修改,那么应该选择使用StringBuffer & StringBuilder 类。

// 将此字符串与指定的对象比较
boolean equals(Object anObject)  

//将此 String 与另一个 String 比较,不考虑大小写
boolean equalsIgnoreCase(String anotherString)  

// 将此字符串是否包含另一字符串
boolean contains(String anotherString)  

// 判断此字符串是否以指定的前缀开始
boolean startsWith(String prefix)  

// 判断此字符串是否以指定的后缀结束
boolean endsWith(String suffix)  

// 判断此字符串是否为空
boolean isEmpty(String string)  

// 返回此字符串的长度 
int length()  

// 返回指定索引处的 char 值
char charAt(int index)   

// 返回指定字符在此字符串中第一次出现处的索引
int indexOf(int ch)  

// 返回指定子字符串在此字符串中第一次出现处的索引。 
int indexOf(String str)   

// 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索
int indexOf(int ch, int fromIndex)  

// 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始
int indexOf(String str, int fromIndex)    

// 返回指定字符在此字符串中最后一次出现处的索引
int lastIndexOf(int ch)  

// 返回一个新的字符串,它是此字符串从指定位置开始截取,默认到结尾 
String substring(int beginIndex)  

// 从指定位置开始到指定位置结束,截取字符串,返回一个新字符串
String substring(int beginIndex, int endIndex)   

// 将字符串转化为字节数组
byte[] getBytes()   

// 将此字符串转换为一个新的字符数组
char[] toCharArray()  

// 将字符数组转化为字符串 
static String valueOf(char[] chs)   

// 将int类型数据转化为字符串
static String valueOf(int i)   

// 将此 String 中的所有字符都转换为小写
String toLowerCase()   

// 将此 String 中的所有字符都转换为大写
String toUpperCase()  

// 将指定字符串连接到此字符串的结尾 
String concat(String str)  

// 返回一个新的字符串,用 newChar 替换此字符串中出现的所有 oldChar 得到的。 
String replace(char oldChar, char newChar)  

String replace(String old, String new) 

// 返回一个新的字符串,去除字符串两端空格
String trim()]   

// 把这个字符串和另一个对象比较
int compareTo(Object o)   

// 按字典顺序比较两个字符串
int compareTo(String anotherString)  
StringBuffer 和 StringBuilder 类

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

StringBuilder 和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

// 将指定的字符串追加到此字符序列
public StringBuffer append(String s)

// 将 int 参数的字符串表示形式插入此序列中
public insert(int offset, int i)

移除此序列的子字符串中的字符
public delete(int start, int end)

// 使用给定 String 中的字符替换此序列的子字符串中的字符
replace(int start, int end, String str)

// 将此字符序列反转
public StringBuffer reverse()

// 返回一个新的 String,从指定位置截取到末尾
String substring(int start)

// 返回一个新的 String,截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
String substring(int start, int end)
int 与 String转化
private static void intToString(int i){

        // 方式一
        String string1 = String.valueOf(i);      // 推荐使用

        // 方式二
        String string2 = i + "";                 // 推荐使用

        // 方式三
        Integer integer = new Integer(i);
        String string3 = integer.toString();

        // 方式四
        String string4 = Integer.toString(integer);
    }

    private static void stringToInt(String string){

        // String -- Integer -- int
        // 方式一
        Integer integer = new Integer(string);
        int i = integer.intValue();

        // 方式二
        int i1 = Integer.parseInt(string);  // 推荐使用
    }
数组
  • 声明数组
dataType[] arrayRefVar;   // 首选的方法
dataType arrayRefVar[];  // 效果相同,但不是首选方法
  • 创建数组
// 动态初始化,只指定长度,由系统给出初始化值
dataType[] arrayRefVar = new dataType[arraySize];  
// 静态初始化,给出初始化值,由系统决定长度
dataType[] arrayRefVar = new  dataType[] {value0, value1, ..., valuek}; 
dataType[] arrayRefVar = {value0, value1, ..., valuek}; 
  • 数组的操作
    排序
// 冒泡排序
    private static int[] bubbleSort(int[] array){

        for (int i = 0; i < array.length - 1; i++) {
            for (int j = 0; j < array.length - i - 1; j++) {
                if (array[j] > array[j + 1]){
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
        return array;
    }
// 选择排序
    private static int[] slectSort(int[] array){

        for (int i = 0; i < array.length - 1; i++) {
            for (int j = i + 1; j < array.length; j++) {
                if (array[i] > array[j]){
                    int temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
        }
        return array;
    }

查找

// 二分法查找
    private static int getIndex(int[] array, int value){

        int min = 0;
        int max = array.length - 1;
        int mid = (min + max) / 2;

        while (value != array[mid]){
            if (value > array[mid]){
                min = mid + 1;
            }else{
                max = mid - 1;
            }
            mid = (min + max) / 2;

            if (min > max){
                return -1;
            }
        }

        return mid;
    }
  • 二维数组
    多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。
    动态初始化格式:
    type[][] arrayName = new type[arraylenght1][arraylenght2];
int[][] arr = new int[3][2];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,148评论 1 44
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,362评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,560评论 18 399
  • 我和小呆呆相识于朋友无意间提出的一场旅行。 两个单身狗在情侣们各种花式秀恩爱的压榨下,我开始了与小呆呆...
    猫咪爱吃咸鱼阅读 301评论 0 1
  • 前言:可以说,这是一篇关于WebView整体使用的一个示例。在WebView中,有几个地方是我们可以使用来定制我们...
    颤抖的闪电阅读 461评论 0 0