黑马程序员——API中的类

                                                  黑马程序员——API中的类
 ---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a 
href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! -------------------------------
                                                 
String:本身是final类 修饰字符串
1.对象一旦初始化,就不能够改变


String s1="abc"; s1是一个类型变量,“abc”是一个对象。
String s2=new String("abc");
String s3=new String("abc");
注意:
1.equals比较两个对象内容是否相等
s2.equals(s3) // ture;
2. ==比较的是值是否相等
s1==s2 //false 地址值不一样
 
package com.string.api;


import com.sun.org.apache.xpath.internal.operations.Equals;


public class StringConstruction {


/**
* @param args
*/
public static void main(String[] args) {
stringConstrcuctionDemo();
System.out.println("***************************");
stringConstrcuctionDemo1();

stringDemo(); //比较对象


}
private static void stringConstrcuctionDemo(){ //构造函数
char []arr={'w','d','L','b','c'};

String s=new String(arr,1,3);
System.out.print(s);
}
public static void stringConstrcuctionDemo1(){
String s=new String();//等效于String s="" 空引用  不等效于 String s=null;

byte [] arr={32,67,98,11,35};
String s1=new String(arr);
System.out.print(s1);
}
private static void stringDemo(){
String a="abc"; //创建字符串对象在常量池中

String b =new String("abc"); //new 个对象在堆中

System.out.print(a==b); //false 地址值不一样,
System.out.print(a.equals(b)); //equals 比较两个对象是否相等
}
}
练习题:


package com.string.api;


public class StringTest2 {


/**
* 查找一个字符字串在这个字符串出现的次数
* 分析:查找字符串是否存在,获取存在位置,使用indexof 完成
*     2.找到就记录其位置,剩余继续查找,剩余字符串起始位置是当前位置+字串长度
*     3通过循环查找,找不到就-1,用记录器记录
*/
public static void main(String[] args) {

String str="abadedcdabalecabaywzyw";
String son="aba";  //要查找的字串

int count=getStringcount(str, son);
System.out.print("记录数是:"+count);




}
public static int getStringcount(String str,String son){ //定义计数器方法
int count=0;
int index=0;

while((index=str.indexOf(son,index))!=-1){
index=index+son.length();  
count++;
}
return count; 

}
/*
*   截取获取字串在整串的次数
*/
public static int getSonStringcount(String str,String son){ //定义计数器方法
//定义计数器
int count=0;
//定义出现的位置
int index=0;

while((index=str.indexOf(son))!=-1){
str=str.substring(index+son.length());  
count++;
}
return count; 

}


}
                                              
StringBuffer 是个容器,字符串缓存区
特点:1.存储内容可修改,
      2.长度是可以改变的。
   3.可以存储不同类型的数据
   4.最终要转换成字符串进行使用


既然是个容器对象,具备哪些功能?


1.添加
StringBuffer.append(date);
StringBuffer insert(index,date);


2.删除
StringBuffer delete(start,end);//包含头,不含尾,删除start到end-1 的元素
StringBuffer deleteCharAt(int,index);//删除指定位置


3.查找
char charAt(index);


4.修改
StringBuffer replace(start,end,string);将start至end-1替换成string
void setCharAt(index,char);替换指定位置
void setLength(len);将原字符串置为指定长度的字符串


5.反转
  StringBuffer reverse();


6.将缓冲区中的指定数据存储到字符数组中


  void getChars(int srcBegin,int srcEnd,char[] dst,int dstbegin)






package com.string.api;


public class StringBuffer {




void  StringBuffer(String string) {
// TODO Auto-generated constructor stub  //构造方法
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub


}
private static  void bufferMethodDemo1(){

StringBuffer sb=new StringBuffer("abce");//
         //  sb。delete(1,3);  //sb方法出错,要构造方法
}


private static  void bufferMethodDemo2(){

StringBuffer sb=new StringBuffer("abce");//
         //  sb。delete(1,3);
    //sb.insert(2,"qq");
}

private static  void bufferMethodDemo(){

StringBuffer sb=new StringBuffer("abce");//创建缓冲区对象
         //  sb。delete(1,3);
    //sb.insert(2,"qq");
  //sb.append(4).append(false);
}




}


StringBuilder
特点:StringBuilder 与 StringBuffer 功能类似
1.StringBuilder 线程不同步,用于单线程,提高效率。
2.StringBuffer 是线程同步的,多用于多线程。


package com.string.api;


public class StringBuilder {


/**
* @param args
*/
public static void main(String[] args) {

int [] arr={3,1,6,8,4};
String s=arrToString(arr);

System.out.print(s);


}
public static String  arrToString(int [] arr){  //数组转换成字符串
StringBuilder sb=new StringBuilder();
            sb.append("[");
            for(int i=0;i<arr.length;i++){
            if(i!=arr.length-1){
            sb.append(arr[i]+",");
             
            }else{
            sb.append(arr[i]+"]");
            }
            }

return  sb.toString();

}
private void append(String string) {  //创建append 方法
// TODO Auto-generated method stub

}

public static String  arrToString1(int [] arr){  ///数组转换成字符串

           String str="[";
            for(int i=0;i<arr.length;i++){
            if(i!=arr.length-1){
            str+=arr[i]+",";
             
            }else{
            str+=arr[i]+"]";
            }
            }

return  str;

}


}
打印:
com.string.api.StringBuilder@2c1e6b


StringBuffer 和 StringBuilder区别:,
StringBuffer 同步、线程安全,适用于多线程
StringBuilder 不同步 线程不安全,适用单线程,效率高


包装类及使用
1.基本类型对象的包装类
方便操作基本类型值,将其封装成对象,定义了属性和行为,丰富数据操作


左边到右边是封装,右转左则是拆箱,装箱与拆箱是一个相互的过程。
基本类型         封装类型
byte              Byte
short             Short
int               Integer
float             Float
double            Double


package com.study;


public class Test {


/**
* @param args
*/
public static void main(String[] args) {

// 十进制——>其他进制
System.out.println(Integer.toBinaryString(50));
System.out.println(Integer.toOctalString(50));
System.out.println(Integer.toHexString(50));


System.out.println(Integer.parseInt("ab", 16));


}






}
自动装箱:
如果装箱的是一个字节,那么数据会共享,不会再开辟空间。
package com.study;


public class WrapperDemo {


/**
* @param args
*/
public static void main(String[] args) {

// 十进制——>其他进制
int num=3;
num=num+5;
 
Integer i=4;//i=new Integer(4)  自动装箱,将int——>封装Integer
i=i+8; // i=new Integer(i.intValue()+8); //拆箱动作  i.intValue()

Integer a=new Integer(128);
Integer b=new Integer(128);

System.out.println(a==b); //false
System.out.println(a.equals(b));//true

          System.out.println(i);
          System.out.println("*********************");
          show( a);
          System.out.println("*********************"); 
          Integer x=128;
          Integer y=128;
          
      System.out.println(x==y); //false
System.out.println(x.equals(y));


}

public static void show(Object a){  //Object a=new Integer(55);
System.out.print(a);
}






}


习题:将字符串数值从小到大排序
package com.study;


import java.util.Arrays;






public class Test {


/**
*将字符串数值从小到排序
*分析:字符串中的值是用空格进行分隔的
*使用字符串对象分割方法将大串分成小串
*小字符串转换成int 可以使用包装类
*/
private static final String SPACE=" "; //静态常量  空格

public static void main(String[] args) {

String number="20 49 -12 87 21";
System.out.println(number);
number=sortStringNumber(number);
System.out.println("排序后的字符串是");
System.out.println(number);



}

public static String sortStringNumber(String number){  //排序
//1.将字符串变成字符数组
String [] arr=stringToArray(number);
//2.将字符串数组变成int数组  
int [] num_arr=toIntArray(arr);

//3.对Int 数组排序
mySortArray(num_arr);
 
//4.再将排序后的Int数组转成字符串
String temp=arrayToString(num_arr);


return temp;


}
//1.将字符串变成字符数组
public static String[] stringToArray(String number){  //字符串转字符数组方法

String [] arr=number.split(SPACE);

return arr; //返回数组类型


}

//2.字符串数组转换INT数组
public static int[] toIntArray(String [] arr){  
int [] num_arr=new int[arr.length];
for(int i=0;i<num_arr.length-1;i++){
num_arr[i]=Integer.parseInt(arr[i]);
}

return num_arr; 


}
//3.Int 数组排序
public static void mySortArray(int[] num_arr){
Arrays.sort(num_arr);
}


public static String arrayToString(int[] num_arr){
//4.再将排序后的Int数组转成字符串
      StringBuilder sb=new StringBuilder();
      for(int i=0;i<num_arr.length;i++)
      if(i!=num_arr.length-1){
      sb.append(num_arr[i]+SPACE);
      
      }else{
      sb.append(num_arr[i]);
      }
return sb.toString();

}


}




---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a 
href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! -------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
黑马程序员的tb_brand是指在JavaWeb基础教程创建的一个表。这个表是用来存储品牌信息的,具体的表结构和数据类型需要和JavaBean类的成员变量保持一致。\[1\]在这个教程,使用了Maven来构建项目,并且使用了MyBatis作为持久层框架,通过配置pom.xml文件来引入相关依赖。\[2\] Maven是一个用于管理和构建Java项目的工具,它提供了一套标准化的项目结构、构建流程和依赖管理机制。\[3\] #### 引用[.reference_title] - *1* [【JAVAWEB开发】黑马程序员java web案例资料(含Element的删除与修改)](https://blog.csdn.net/aasd23/article/details/126940147)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [黑马程序员-MyBatis 框架-最全入门笔记、阿伟看了都得说真大、真细、真全!!!](https://blog.csdn.net/qq_57383364/article/details/128103058)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [JavaWeb——黑马程序员课程笔记](https://blog.csdn.net/King_ZACC/article/details/128573804)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值