Java学习笔记——String类及其常见功能(13)

  1. String类概述
    String类,字符串是一个特殊的对象。
    字符串一旦初始化就不可以被改变。
class StringDemo 
{
    public static void main(String[] args) 
    {   
        String s1 = "abc";                  //s1是一个类类型变量, “abc”是一个对象。

        String s2 = new String("abc");          //字符串最大的特点就是,一旦被初始化就不可以被改变。
/*
        s1和s2有什么区别?
        s1在内存中有一个对象。
        s2在内存中有两个对象。

*/

        System.out.println(s1==s2);

        System.out.println(s1.equals(s2));  //String类复写了Object类中的equals方法。
                                            //该方法用于判断字符串是否相同。
                                            //equals(Object anObject)将字符串与指定对象进行比较
    }
}
  1. 常见功能–获取和判断
    String类适用于描述字符串事物。
    那么它就提供了多个方法对字符串进行操作。

常见的操作有哪些?
*

  1. 获取。
    1.1 字符串中的包含的字符数,也就是字符串的长度。
    int length();// 获取长度。
    1.2 根据位置获取位置上某个字符。
    char charAt(int index);//
    1.3 根据字符获取该字符在字符串中位置。
    int indexOf(int ch);//返回的是ch在字符串中第一次出现的位置。
    int indexOf(int ch, int fromIndex); //从fromIndex指定位置开始,获取ch在字符串中出现的位置。
    int indexOf(String str);//返回的是str在字符串中第一次出现的位置。
    int indexOf(String str, int fromIndex);//从fromIndex指定位置开始,获取str在字符串中出现的位置。
  2. 判断。
    2.1 字符串中是否包含某个字串。
    boolean contains(str);
    特殊之处:indexOf(str); 可以索引str第一次出现位置,如果返回-1,表示该str不在字符串中存在。 所以,也可以用于对指定判断是否包含。
    if(str.indexOf(“aa”)!=-1); //而且该方法既可以判断,又可以获取出现位置。
    boolean contains(CharSequence s) // 当且仅当此字符串包含指定的 char 值序列时,返回 true。
    2.2 字符串是否有内容。
    boolean isEmpty();// 原理是判断长度是否为0.
    2.3 字符串是否以指定内容开头。
    boolean startsWith(str);//
    2.4 字符串是否以指定内容结尾。
    boolean endsWith(str);//
    2.5 判断字符串内容是否相同。复写了Object类中的equals方法。
    boolean equals(str)
    2.6 判断内容是否相同,并忽略大小写。
    boolean equalsIgnoreCase();
    *
class StringMethodDemo 
{
    public static void method_is()
    {
        String str = "ArrayDemo.java";

        //判断文件名称是否是Array单词开头
        sop(str.startsWith("Array"));

        //判断文件名称是否是.java文件。
        sop(str.endsWith(".java"));

        //判断文件中是否包含Demo
        sop(str.contains("Demo"));
    }
    public static void method_get()
    {
        String str = "abcdef";

        //长度
        sop(str.length());

        //根据索引获取字符
        sop(str.charAt(4));

        //根据字符获取索引
        sop(str.indexOf("m",3));//如果没有找到,返回-1

        //反向索引一个字符出现位置。
        sop(str.lastIndexOf("a"));
    }

    public static void main(String[] args) 
    {
        String s1 = "abc";
        String s2 = new String("abc");

        String s3 = "abc";
        System.out.println(s1==s2);//false
        System.out.println(s1==s3);//true

        method_get();
        method_is();
    }
    static void sop(Object obj)
    {
        System.out.println(obj);
    }
}
  1. 常见功能–转换
    转换
    3.1 将字符数组转成字符串
    构造函数: String(char[])
    String(char[],offset,count);//将字符数组中的一部分转成字符串。
    静态方法:
    static String copyValueOf(char[]);//返回数组的字符串形式。
    static String copyValueOf(char[],int offset,int count);
    3.2将字符串转成字符数组
    char[] toCharArray()
    将此字符串转换为一个新的字符数组。
    3.3将字节数组转换成字符串。

    3.4将字符串转换成字符数组。

    3.5将基本数据类型换成字符串。
    static String valueOf(boolean b)
    返回 boolean 参数的字符串表示形式。
    static String valueOf(char c)
    返回 char 参数的字符串表示形式。
    static String valueOf(char[] data)
    返回 char 数组参数的字符串表示形式。
    static String valueOf(char[] data, int offset, int count)
    返回 char 数组参数的特定子数组的字符串表示形式。
    static String valueOf(double d)
    返回 double 参数的字符串表示形式。
    static String valueOf(float f)
    返回 float 参数的字符串表示形式。
    static String valueOf(int i)
    返回 int 参数的字符串表示形式。
    //(3+”“);//(“String.valueOf(3)”); 两者具备相同效果。
    static String valueOf(long l)
    返回 long 参数的字符串表示形式。
    static String valueOf(Object obj)
    返回 Object 参数的字符串表示形式。

class StringMethodDemo1 
{
    public static void method_trans()
    {
        char[] arr = {'a','b','c','d','e','f'};
        String s = new String(arr,1,4);
        sop(s);

        String s1 = new String(arr);
        sop(s1);

        String s2 = new String().copyValueOf(arr);
        sop(s2);

        String s3 = String.copyValueOf(arr);
        sop(s3);

        String ss = "qwqwlejrlwqejrlk";
        char[] arr1 = ss.toCharArray();
        String s4 = String.copyValueOf(arr1);
        sop(s4);
        for (int x = 0;x<arr1.length;x++ )
        {
            sop("arr1["+x+"]="+arr1[x]);
        }
    }
    public static void main(String[] args) 
    {
        method_trans();
    }
    static void sop(Object obj)
    {
        System.out.println(obj);
    }
}
  1. 常见功能–切割和替换
    1. 替换
      String replace(char oldChar, char newChar)
      返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
      String replace(CharSequence target, CharSequence replacement)
      使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
    2. 切割
      String[] split(String regex)
      根据给定正则表达式的匹配拆分此字符串。
    3. 字串,获取字符串中的一部分。
      String substring(int beginIndex)
      返回一个新的字符串,它是此字符串的一个子字符串。
      String substring(int beginIndex, int endIndex)
      返回一个新字符串,它是此字符串的一个子字符串。
 class StringMethodDemo2
{
    public static void method_sub()
    {
        String s = "asdfsdagsdg";

        String s1= s.substring(2);//从指定位置开始到结尾。如果指定角标不存在,会出现角标越界异常
        String s2= s.substring(2,6);//包含头,不包含尾。 s.substring(0,s.length());取得整串。

        sop("s1="+s1);
        sop("s2="+s2);
    }
    public static void method_spilt()
    {
        String s = "zhangsan,lisi,wangwu";
        String[] arr1= s.split(",");
        for (int x= 0;x<arr1.length ;x++ )
        {
            sop(arr1[x]);
        }
    }
    public static void method_replace()
    {
        String s = "Hello java!";
        String s1= s.replace("a","n");//如果要替换的字符不存在,返回的还是原来的字符串
        String s2= s.replace("java","world");

        sop("s="+s);
        sop("s1="+s1);
        sop("s2="+s2);

    }
    public static void main(String[] args) 
    {
        method_sub();
        method_spilt();
        method_replace();
    }
    static void sop(Object obj)
    {
        System.out.println(obj);
    }
}
  1. 常见功能–比较和去除空格

    1. 转换,去除空格,比较
      String toUpperCase();//转换成大写
      String toLowerCase();//转换成小写
      String trim()
      返回字符串的副本,忽略前导空白和尾部空白
class StringMethodDemo3
{

    public static void method_7()
    {
        String s = "   Hello java.";

        String s1= s.toUpperCase();
        String s2= s.toLowerCase();
        String s3= s.trim();

        sop("s1="+s1);
        sop("s2="+s2);
        sop("s3="+s3);
    }

    public static void main(String[] args) 
    {
        method_7();
    }
    static void sop(Object obj)
    {
        System.out.println(obj);
    }
}
  1. String字符串练习
  2. StringBuffer常见功能–添加、删除、修改
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件上传是Web开发中常见功能之一,Java中也提供了多种方式来实现文件上传。其中,一种常用的方式是通过Apache的commons-fileupload组件来实现文件上传。 以下是实现文件上传的步骤: 1.在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency> ``` 2.在前端页面中添加文件上传表单: ```html <form method="post" enctype="multipart/form-data" action="upload"> <input type="file" name="file"> <input type="submit" value="Upload"> </form> ``` 3.在后台Java代码中处理上传文件: ```java // 创建一个DiskFileItemFactory对象,用于解析上传的文件 DiskFileItemFactory factory = new DiskFileItemFactory(); // 设置缓冲区大小,如果上传的文件大于缓冲区大小,则先将文件保存到临时文件中,再进行处理 factory.setSizeThreshold(1024 * 1024); // 创建一个ServletFileUpload对象,用于解析上传的文件 ServletFileUpload upload = new ServletFileUpload(factory); // 设置上传文件的大小限制,这里设置为10MB upload.setFileSizeMax(10 * 1024 * 1024); // 解析上传的文件,得到一个FileItem的List集合 List<FileItem> items = upload.parseRequest(request); // 遍历FileItem的List集合,处理上传的文件 for (FileItem item : items) { // 判断当前FileItem是否为上传的文件 if (!item.isFormField()) { // 获取上传文件的文件名 String fileName = item.getName(); // 创建一个File对象,用于保存上传的文件 File file = new File("D:/uploads/" + fileName); // 将上传的文件保存到指定的目录中 item.write(file); } } ``` 以上代码中,首先创建了一个DiskFileItemFactory对象,用于解析上传的文件。然后设置了缓冲区大小和上传文件的大小限制。接着创建一个ServletFileUpload对象,用于解析上传的文件。最后遍历FileItem的List集合,判断当前FileItem是否为上传的文件,如果是,则获取文件名,创建一个File对象,将上传的文件保存到指定的目录中。 4.文件上传完成后,可以给用户一个提示信息,例如: ```java response.getWriter().write("File uploaded successfully!"); ``` 以上就是使用Apache的commons-fileupload组件实现文件上传的步骤。需要注意的是,文件上传可能会带来安全隐患,因此在处理上传的文件时,需要进行严格的校验和过滤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值