Java中String的学习与总结

构造方法

这里只介绍部分构造函数
  1. String()初始化空串
  2. String(byte[] bytes)byte类型数组,数据为char才能转为字符串
  3. String(byte[] bytes, Charset charset)以指定编码解析成字符串
  4. String(char[] value) char数组转为字符串
  5. String(String original) 获得的是original的副本
  6. String(StringBuffer buffer) StringBuffer 转为字符串
  7. String(StringBuilder builder) StringBuilder 转为字符串

方法

  1. charAt(int index) 返回索引处的字符
  2. codePointAt(int index) 返回索引处的代码点(我理解是ASCII处的整数值)
  3. compareTo(String anotherString) 两个字符串比较,0相等,正数大于,负数小于
  4. concat(String str) 字符串拼接
  5. contains(CharSequence s) 是否包含子串,只要是实现接口的类都可以
  6. contentEquals(CharSequence cs) 判断与cs是否相等,与equals相似
  7. copyValueOf(char[] data) 转为字符串,与ValueOf(char[])近似
  8. endsWith(String suffix) 是否已suffix为后缀
  9. equals(Object anObject) 判断两个字符串是否相等,不能==判断两个对象的相等
  10. getBytes()字符转为byte[]
  11. getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 将字符从此字符串复制到目标字符数组。
  12. indexOf(int ch) 返回ch在字符串中首次出现的位置,它还有许多重载的方法,具体看下面的代码
  13. isEmpty() 判空
  14. lastIndexOf(int ch) 与indexOf()类似,就是逆向的首次位置
  15. length() 字符串长度
  16. replace(char oldChar, char newChar) 字符替换
  17. split(String regex, int limit) 字符切割,limit为切割为几块,没有此参数则全部切割
  18. join(CharSequence delimiter, CharSequence… elements)用delimiter连接集合中的元素,组成一个字符串
  19. startsWith(String prefix)判断前缀
  20. substring(int beginIndex, int endIndex) 判断子串
  21. toCharArray() 返回char[]
  22. toLowerCase() 转为小写
  23. toUpperCase() 转为大写
  24. trim()去掉前导和尾部的空白
  25. valueOf(boolean b)将对应的类型转为字符串,重载的方法,多类型

下面是实践的代码

public static void main(String[] args){
           //String 实现了Serializable, CharSequence,Compareable<String> 接口
        //1.下面介绍String 的构造方法
        String s1 = new String();//

        byte[] by = new byte[]{'1','2'};//byte[]转为String
        String s2 = new String(by);
        System.out.println(s2);

        Charset cs = Charset.forName("utf8");
        String s3 = new String(by, cs);//将by按cs编码,生成字符串;
        System.out.println(s3);

        char[] c1 = new char[]{'a','b','c'};
        String s4 = new String(c1);
        System.out.println(s4);
        String s5 = new String(c1,1,2);
        System.out.println(s5);
        String s6 = "s6";
        String s7 = new String(s6);//是s6的一个副本
        StringBuffer sb = new StringBuffer("stringbuffer");
        StringBuilder sb1 = new StringBuilder("stringbuilder");//用stringbuilder初始化
        System.out.println(sb);
        System.out.println(sb1);
        System.out.println(s7);

        //测试String的方法
        String tmp = "abcdefg";
        System.out.println(tmp.charAt(1));//返回字符串某位置的字符,返回类型是char
        System.out.println(tmp.codePointAt(1));//返回字符串指定索引处的字符,返回类型是int
        System.out.println(tmp.compareTo("AFHdfad"));//返回两个字符串比较的结果,0相等,正数大,负数小
        System.out.println(tmp.compareToIgnoreCase("ABCDEFG"));//忽略大小写的比较
        System.out.println(tmp.concat("hijk"));//返回拼接后的字符串
        System.out.println(tmp.contains("ab"));//是否包含CharSequence接口数据,该接口已实现的类包括(CharBuffer, Segment, String, StringBuffer, StringBuilder),返回类型是boolean
        System.out.println(tmp.contentEquals("hijk"));//比较是否相等,参数类型是CharSequence
        StringBuffer sb2 = new StringBuffer("sb2");
        System.out.println(tmp.contentEquals(sb2));//重载,参数类型是StringBuffer
        char[] c2 = new char[]{'c','d'};
        System.out.println(tmp.copyValueOf(c2));//返回表示指定数组中表示该字符序列的String,返回类型是String
        System.out.println(tmp.copyValueOf(c2,0,1));//返回表示指定数组中表示该字符序列的String,offset:起始位置,count:数量,返回类型是String
        System.out.println(tmp.endsWith("fg"));//是否以参数为后缀,返回类型是boolean
        System.out.println(tmp.equals("hijk"));//判断是否相等,返回类型是boolean
        System.out.println(tmp.equalsIgnoreCase("dfadfadf"));//判断是否相等,忽略大小写,返回类型是boolean
        byte[] byt = tmp.getBytes();//返回byte字符数组
        for(byte b:byt){
            System.out.print(b);
        }
        System.out.println();
        char[] c3 = new char[100];
        tmp.getChars(0,tmp.length(),c3,0);//将指定长度的紫川复制到char数组中,最后一个参数是其起始位置
        for(char b:c3){
            System.out.print(b);
        }
        System.out.println();
        System.out.println(tmp.indexOf('g'));//查找下标,参数是正数类型,可以传入ASCII对应的整数,也可以传入字符,返回类型是int
        System.out.println(tmp.indexOf('g',1));//查找下标,参数是正数类型,可以传入ASCII对应的整数,也可以传入字符,从指定下标开始,返回类型是int
        System.out.println(tmp.indexOf("ef"));//查找子串对应的起始位置,第一个出现的位置,
        System.out.println(tmp.indexOf("ef",3));//查找子串对应的起始位置,第一个出现的位置,
        System.out.println(tmp.isEmpty());//是否为空串,返回boolean
        String[] str = new String[]{"12","34"};
        String s8 = String.join("->",str);//第一个参数是charSequence,第二个参数是charSequence集合,将集合中的元素用第一个参数串联起来
        //lastIndexOf 与indexOf相似,都是查找目标字符或者字符串的位置,区别是一个向前,一个向后
        System.out.println(s8);
        System.out.println(tmp.length());//字符串长度
        System.out.println(tmp.replace('a','B'));//替换,全部替换为第二个参数的字符
        String tmp2 = "192.168.1.9";
        String[] str3 = tmp2.split("\\.");//根据传入的参数切割为String字符串
        for(String s: str3){
            System.out.print(s);
        }
        System.out.println();
        String[] str4 = tmp2.split("\\.",2);//切割为2部分
        for(String s: str4){
            System.out.print(s);
        }
        System.out.println();

        System.out.println(tmp.startsWith("ab"));//判断参数是否是其前缀,
        System.out.println(tmp.startsWith("ab",3));//判断参数是否是其前缀,从第二个参数开始
        System.out.println(tmp.substring(3));//获取子串
        System.out.println(tmp.substring(1,3));//获取子串,不包括结束为止字符
        System.out.println(tmp.toLowerCase());//小写
        System.out.println(tmp.toUpperCase());//大写
        String tmp3 = " y e s ";
        System.out.println(tmp3.trim());//去掉字符串中的前导空白和尾部空白
        System.out.println(String.valueOf(10));//转为字符串类型




    }

代码结果

在这里插入图片描述

总结

对于String 的迭代,可以使用for循环,利用charAt(i)获取,或者用for(Character c: A) 来遍历。
最近开始学习java,并试着学习怎么写总结。希望自己在Java上的理解要透彻,对一些基础的代码上,要做到手写,不能每次都去查询API。加油向前冲!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Java Swing可以通过以下步骤进行: 1. 了解Swing的基本概念和特点。Swing是一个用于开发Java应用程序用户界面的开发工具包,它是由纯Java实现的,并且不依赖于操作系统的支持。与AWT组件相比,Swing提供了更丰富、灵活的功能和模块化组件,可以创建优雅的用户界面。 2. 学习Swing的组件和包。Swing提供了近100个类和几十个接口,主要包含在javax.swing包。除了JTableHeader类和JTextComponent类分别在swing.table包和swing.text包,几乎所有的Swing组件都在javax.swing包。此外,还有一些其他的相关包,如javax.swing.event、javax.swing.table、javax.swing.tree、javax.swing.filechooser、javax.swing.border等,它们提供了不同类型的组件和功能。 3. 熟悉Swing的事件处理机制。Swing的事件处理机制与AWT的事件处理机制类似,都是通过事件类和监听器接口来实现。了解如何使用Swing的事件处理机制可以帮助你对用户界面的交互做出响应。 4. 编写基于Swing的应用程序GUI。你可以创建一个继承自javax.swing.JFrame类的JFrame对象作为应用程序的主窗口。在构造函数设置窗体的属性,如窗体的名称、大小、可见性和关闭操作。然后,你可以在窗体添加各种Swing组件,如按钮、文本框、标签等,以构建你想要的用户界面。 下面是一个使用继承javax.swing.JFrame类创建JFrame对象的示例代码: ```java import javax.swing.JFrame; import javax.swing.WindowConstants; public class JFrameDemo extends JFrame { public JFrameDemo() { super("JFrameDemo"); // 设置窗体名称 this.setSize(500, 500); // 设置窗体宽高 this.setVisible(true); // 设置窗体显示 this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // 设置窗体关闭操作 } public static void main(String\[\] args) { new JFrameDemo(); // 创建JFrameDemo对象 } } ``` 通过学习Swing的基本概念、组件和包,以及掌握Swing的事件处理机制,你可以开始编写基于Swing的应用程序GUI。 #### 引用[.reference_title] - *1* [Java Swing学习](https://blog.csdn.net/weixin_44247784/article/details/102767655)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [JavaSwing学习总结](https://blog.csdn.net/qq_27862695/article/details/48036983)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [java学习——Swing](https://blog.csdn.net/Asugsal/article/details/88825420)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值