Java零基础入门到精通_Day 8

1.API

应用程序接口

Java API:指的就是JDK 中提供的各种功能的Java类这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。

2. String 

String 类在java.lang 包下,所以使用的时候不需要导包
String 类代表字符串,Java程序中的所有字符串文字(例如“abc”)都被实现为此类的实也就是说,Java 程序中所有的双引号字符串,都是String 类的对象
字符串的特点


字符串不可变,它们的值在创建后不能被更改
虽然 String的值是不可变的,但是它们可以被共享

字符串效果上相当于字符数组( char[]),但是底层原理是字节数组( byte[])

3.String 构造方法

package Base_one.Base_008;

public class StringDemo1 {
    public static void main(String[] args) {
        String s1 = new String();
        System.out.println(s1); // 空的

        // public String(char[] chs) 根据字符数组的内容 创建字符串对象
        char[] chs ={'a','b','c'};
        String s2 = new String(chs); //String方法传进去一个字符数组
        System.out.println(s2);

        //public string(byte[] bys):根据字节数组的内容,来创建字符串对象
        byte[] bys = {97,2,3};
        byte[] bys1 = {97,98,99};
        String s3 = new String(bys);
        System.out.println(s3); // a

        String s4 = new String(bys1);
        System.out.println(s4); // abc

        String s5 = "abc";
        System.out.println(s5);

    }
}

4. String 对象的特点

通过 new 创建的字符串对象,每一次 new都会申请一个内存空间,虽然内容相同,但是地址值不同

char[]chs ={'a','b''c'}i
string sl=new string(chs);
string s2=new string(chs);

上面的代码中,JVM会首先创建一个字符数组,然后每一次new的时候都会有一个新的地址,只不过s1和s2参考的字符串内容是相同的

2)以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个String 对象,并在字符串池中维护

String s3="abc";
String s4="abc";

在上面的代码中,针对第一行代码,JVM 会建立一个String对象放在字符串池中,并给s3 参考;第二行则让s4 直接参考字符串池中的Strinq对象,也就是说它们本质上是同一个对象。

package Base_one.Base_008;

public class String_object {
    public static void main(String[] args) {
        // 构造方法的方式创建对象
        char[] chs = {'a','b','c'};
        String s1 = new String(chs);
        String s2 = new String(chs);

        System.out.println(s1==s2); //false
        // 直接赋值的方式得到对象
        String s3 = "abc";
        String s4 = "abc";
        System.out.println(s3==s4); //true
        // 比较字符串的地址是否相同
        System.out.println(s1==s3); //false

    }
}

5.字符串的比较

package Base_one.Base_008;


public class StringDemo02 {
    public static void main(String[] args) {


    char[] chs = {'a','b','c'};
    String s1 = new String(chs);
    String s2 = new String(chs);

    String s3 = "abc";
    String s4 = "abc";
    // 比较字符串对象的地址值是否相同
    System.out.println(s1==s2); //false
    System.out.println(s1==s3); //flase
    System.out.println(s3==s4); //true
    System.out.println("----");
    //比较字符串内容是否相同
    System.out.println(s1.equals(s2)); //true
    System.out.println(s1.equals(s3)); //true
    System.out.println(s3.equals(s4)); //true

    }
}

6. 用户登录

package Base_one.Base_008;

import java.util.Scanner;
import java.util.stream.Stream;

public class StringTest01 {
    public static void main(String[] args) {
        String user = "user";
        String pwd = "a123456";
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入用户名:");
        String username = scanner.nextLine();

        System.out.println("请输入密码:");
        String password = scanner.nextLine();

        StringTest01 test01 = new StringTest01();

        int cout=0;
        for(int i=0;i<3;i++){
            if(username.equals(user) && (password.equals(pwd))){
                System.out.println("正确");
                break;
            }else {
                System.out.println("第"+(i+1)+"次输入不对,重新输入");
                System.out.println("还有"+(2-i)+"次机会");
                if ((2-i)==0){
                    System.out.println("三次机会使用完毕!");
                    break;
                }else {
//                username = usr.nextLine();
//                password = pw.nextLine();
                    username = test01.userInput(username);
                    password = test01.pwdInput(password);
                }
            }
          }
    }
    public String userInput(String username){
        Scanner usr = new Scanner(System.in);
        String u = usr.nextLine();
        return u;
    }

    public String pwdInput(String password){
        Scanner pw = new Scanner(System.in);
        String p = pw.nextLine();
        return p;
    }
}

7.遍历字符串

package Base_one.Base_008;

import java.util.Scanner;

public class StringYest02 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String line = sc.nextLine();
        for (int i = 0;i<line.length();i++){
            System.out.print(line.charAt(i)+" ");
        }
    }
}

8. 统计字符次数

package Base_one.Base_008;

import java.util.Scanner;

public class StringTest03 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个字符串");
        String line = sc.nextLine();
        int D = 0;
        int X = 0;
        int number = 0;
        for (int i= 0;i<line.length();i++){
            char ch = line.charAt(i);
            if (ch>='A' && ch<='Z'){
                D++;
            } else if (ch>='a' && ch<='z') {
                X++;
            } else if (ch>='0' && ch<='9') {
                number++;
            }else { // 其他字符的情况
                continue;
            }
        }
        System.out.println(D);
        System.out.println(X);
        System.out.println(number);
    }
}

8. 拼接字符串

package Base_one.Base_008;

public class StringTest005 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                System.out.print(arr[i]);  // 注意这里使用空格而不是加号
            } else {
                System.out.print(arr[i] + ",");  // 注意这里使用空格而不是加号
            }
        }
        System.out.print("]");
        System.out.println();
        System.out.println("-------");
        String line = araytoString(arr);
        System.out.println(line);
    }

    public static String araytoString(int[] arr) {
        String s = "";
        s += "[";
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                s += arr[i];
            } else {
                s += arr[i];
                s += ",";
            }
        }
        s += "]";
        return s;
    }
}



9.字符串反转

package Base_one.Base_008;

import java.util.Scanner;

public class StringDemo06 {
    public static void main(String[] args) {
//        String s = "abc";
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个字符串");
        String s = sc.nextLine();
        System.out.println(s);
        System.out.println("---");

        String ss = reverseString(s);
        System.out.println(ss);
    }

    public static String reverseString(String l) {
        String line = "";
        for (int i = l.length()-1; i>=0 ; i--){
            line += l.charAt(i);
        }
        return line;
    }

}

10.String中的方法

11. StringBuilder

StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器。这里的可变指的是StringBuilder对象中的内容是可变的。

String 和 StringBuilder 的区别:
String:内容是不可变的
StringBuilder:内容是可变的

12.StringBuilder 构造方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/582519.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

记录-执行Grad-CAM所遇问题

在执行Grad-CAM所遇问题 1&#xff09; 修改后解决 2&#xff09; 修改后解决&#xff0c;因为numpy需要在cpu上进行&#xff0c;所有需要加上.cpu() 3&#xff09;plt.matshow(heatmap)出错 原因是get_heatmap()中的mean_gradients torch.mean(gradients, dim[0, 2, 3]…

Spring IOC(一)

1. Spring IOC入门 1.1 什么是Spring IoC IoC&#xff08;Inversion of Control&#xff09;&#xff0c;即控制反转&#xff0c;是一种设计原则。简单来说&#xff0c;IoC就是将程序的某种传统控制流程反转了。 在Spring框架中&#xff0c;控制反转体现在对象的创建和管理上。…

面试:Redis(缓存穿透、缓存击穿、缓存雪崩、双写一致、Redis的持久化、Redis的过期策略、Redis的数据淘汰策略、Redis的分布式锁、Redis的集群方案、Redis网络模型)

目录 一、缓存穿透 1、解决方案一&#xff1a; 2、解决方案二&#xff1a; 二、缓存击穿 1、解决方案一&#xff1a; 2、解决方案二&#xff1a; 三、缓存雪崩 1、解决方案一&#xff1a; 2、解决方案二&#xff1a; 3、解决方案三&#xff1a; 4、解决方案四&#…

扭蛋机小程序带来了什么优势?扭蛋机收益攻略

在当下的潮流消费时代&#xff0c;人们对潮玩也日益个性化&#xff0c;扭蛋机作为一种新型的娱乐消费模式&#xff0c;深受大众喜爱。扭蛋机的价格低&#xff0c;各个年龄层的玩家都可以进行购买&#xff0c;潜在玩家量非常大。扭蛋机商品主打热门IP周边等&#xff0c;种类繁多…

Leetcode-面试题 02.02. 返回倒数第 k 个节点

目录 题目 图解 代码 面试题 02.02. 返回倒数第 k 个节点 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/kth-node-from-end-of-list-lcci/description/ 题目 实现一种算法&#xff0c;找出单向链表中倒数第 k 个节点。返回该节点的值。 注意&…

Q1季度方便速食行业线上市场(京东天猫淘宝)销售数据分析

方便食品行业作为快速消费品市场的重要组成部分&#xff0c;近几年表现出较为强劲的发展势头。当然&#xff0c;每年的食品安全问题也在一定程度上影响着市场的良性健康发展。那么&#xff0c;今年Q1季度方便食品的线上发展如何&#xff1f; 根据鲸参谋数据显示&#xff0c;Q1…

python程序设计语言超详细知识总结

Python 首先 python 并不是简单&#xff0c;什么语言都有基础和高级之分&#xff0c;要想掌握一门语言&#xff0c;必须把高级部分掌握才行。 HelloWorld helloWorld.py print(hello, world)数据类型与变量 变量的数据类型数据类型描述变量的定义方式整数型 (int)整数&…

【Java EE】MyBatis 入门

文章目录 &#x1f340;什么是MyBatis?&#x1f332;如何使用MyBatis&#x1f338;引人Mybatis的相关依赖&#x1f338;配置Mybatis(数据库连接信息)&#x1f338;编写SQL语句(注解/XML)&#x1f338;单元测试 &#x1f333;打印日志 &#x1f340;什么是MyBatis? MyBatis是…

2024年最新linux安装harbor

linux安装harbor Harbor官方介绍这里就不照搬了&#xff0c;说直白点&#xff1a;Harbor就是私有的 Docker Hob 镜像仓库。 前置条件&#xff1a;安装好docker,docker-compose 1、安装harbor离线包&#xff08;在线安装形式不稳定&#xff0c;由于网络原因中间可能中断&…

黑马面试篇1(续)

黑马面试篇1-CSDN博客&#xff08;续集&#xff09; 六、消息中间件篇 6.1 RabbitMQ 使用场景&#xff1a; 异步发送&#xff08;验证码、短信、邮件…&#xff09;MYSQL和Redis , ES之间的数据同步分布式事务削峰填谷… 6.2 Kafka

python:reportlab 生成pdf:基本用法。

1.首先&#xff0c;打开cmd&#xff0c;安装reportlab pip install -i https://pypi.tuna.tsinghua.edu.cn/simple reportlab #从清华镜像安装更快 然后就可以使用其基本用法。 from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvasdef genera…

字节5面挂,恶心到了。。。

字节五面 今天脉脉看到一篇帖子&#xff1a; 楼主是 tx 的前员工&#xff0c;在字节五面&#xff08;加轮&#xff09;被挂后&#xff0c;认定&#xff08;或许私下做了一些调查&#xff09;是字节 HR 向 tx 背调&#xff0c;然后被前同事捏造虚假信息&#xff0c;导致的面试失…

create-react-app项目配置@绝对路径快捷方式

为什么要配置&#xff1f; 因为可能后面我们的项目很很多很大&#xff0c;项目层级比较复杂&#xff0c;为了防止文件路径引用的错误&#xff0c;我们可以使用/这种方式来减少犯错误的可能。 首先介绍---CRACO 什么是CRACO&#xff1f; 要在使用 Create React App 时自定义大…

【Java并发知识总结 | 第九篇】ThreadLocal总结

文章目录 9.ThreadLocal总结9.1ThreadLocal是什么&#xff1f;9.2ThreadLocal的作用&#xff1f;9.3使用ThreadLocal9.4ThreadLocal原理9.5ThreadLocal问题&#xff1a;内存泄漏/溢出9.6为什么key要设计成弱引用&#xff1f;9.7ThreadLocal中的强弱引用关系9.8ThreadLocalMap怎…

【并发编程实战】并发的编程引发的三个问题--可见性/原子性/顺序性

前言 硬件和软件的发展都是相互的&#xff0c;硬件的发展&#xff0c;多核CPU,缓存&#xff0c;进程&#xff0c;线程&#xff0c;我们享受CPU带来的高性能的同时&#xff0c;必定同时也伴随着风险。为了解决这些&#xff0c;则出现了一些理论和实践 问题 问题一 缓存导致的…

最佳WordPress外贸主题推荐(2024)

WordPress是一个非常受欢迎的建站平台&#xff0c;它具有易用性&#xff0c;并提供了许多功能强大的主题和插件。如果你计划建立一个外贸独立站商城&#xff0c;选择一个适合的WordPress外贸主题至关重要。以下是一些外贸主题应具备的特点&#xff1a; 1. 欧美风格&#xff1a…

python代码实现kmeans对鸢尾花聚类

导入第三方库和模型 from sklearn import datasets import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans2、创建画图函数 def draw_result(train_x, labels, cents, title):n_clusters np.unique(labels).shape[0]#获取类别个数color …

美富特 | 邀您参加2024全国水科技大会暨技术装备成果展览会

王涛 四川美源环能科技有限公司 技术总监 报告题目&#xff1a;绿色智慧水岛如何助力工业园区污水及再生水资源化利用降碳增效 拥有十余年的环保行业从业经验&#xff0c;对各类前沿物化、生化及膜技术均有丰富的研发、设计及应用经验&#xff0c;先后参与多项重点核心技术…

spring cloud eureka 初始化报错(A bean with that name has already been defined)

报错内容 The bean ‘eurekaRegistration’, defined in class path resource [org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration E u r e k a C l i e n t C o n f i g u r a t i o n . c l a s s ] , c o u l d n o t b e r e g i s t e r e d . A …

Unity 数字字符串逗号千分位

使用InputField时处理输入的数字型字符串千分位自动添加逗号&#xff0c;且自动保留两位有效数字 输入&#xff1a;123 输出&#xff1a;123.00 输入&#xff1a;12345 输出&#xff1a;12,345.00 代码非常简单 using UnityEngine; using TMPro;public class …