Java入門基礎學習筆記44——String

為什么要學習String的處理呢?

開發中,對字符串的處理是非常常見的。

String是什么?可以做什么?

java.lang.String 代表字符串。可以用來創建對象封裝字符串數據,并對其進行處理。

1、創建對象

2、封裝字符串數據

3、調用String的方法

String創建對象封裝字符串數據的方法:

方式一:

Java程序中的所有字符串文字(例如:“abc”)都為此類對象。

String name = "小黑";
String SchoolName = "黑馬程序員";

方式二:

調用String類的構造器初始化字符串對象。

new String()創建字符串對象,并調用構造器初始化字符串。

package cn.ensource.string;public class StringDemo {public static void main(String[] args) {String name = "itheima";System.out.println(name);String rs1 = new String();System.out.println(rs1);String rs2 = new String("itheima");System.out.println(rs2);char[] chars = {'a', 'b', 'c'};String rs3 = new String(chars);System.out.println(rs3);byte[] bytes = {100, 101, 102};String rs4 = new String(bytes);System.out.println(rs4);}
}

運行結果:

通過構造函數創建

通過new創建的字符串對象,每一次new都會申請一個空間,雖然內容相同,但是地址值不同。

直接賦值方式創建:

以“”雙引號給出的字符串,只要字符串序列相同順序和大小相同,無論程序代碼中出現幾次,JVM都只會建立一個String對象,并在字符串池中維護。

String類的常用方法:

String提供的操作字符串數據的常用方法:

為什么是快速熟悉這些方法呢?

API是解決需求的,快速地認識他們,實實在在地解決業務需求。

package cn.ensource.string;public class StringDemo2 {public static void main(String[] args) {// 目標:快速熟悉String提供的處理字符串的方法String s = "黑馬Java";// 獲取字符串的長度System.out.println(s.length());// 提取字符串中某個索引位置處的字符char c = s.charAt(1);System.out.println(c);// 字符串的遍歷for (int i = 0; i < s.length(); i++) {char ch = s.charAt(i);System.out.print(ch);}System.out.println("--------");// 把字符串轉成字符數組,然后再進行遍歷char[] chars = s.toCharArray();for (int i = 0; i < chars.length; i++) {System.out.print(chars[i]);}System.out.println("--------");// 判斷字符串內容,內容一樣,就返回trueString s1 = new String("黑馬");String s2 = new String("黑馬");boolean rs = s.equals(s2);System.out.println(rs);System.out.println("--------");// 忽略大小寫比較字符串String c1 = "34Aefg";String c2 = "24aefg";System.out.println(c1.equals(c2));System.out.println(c1.equalsIgnoreCase(c2));System.out.println("--------");// 截取字符串內容String s3 = "Java是最好的編程語言之一";System.out.println(s3.substring(0, 8));System.out.println("--------");// 截取字符串內容,從當前位置到字符串末尾System.out.println(s3.substring(8));System.out.println("--------");// 把字符串的某個內容,替換成新內容String s3c = s3.replace("Java", "C++");System.out.println(s3c);System.out.println("--------");// 判斷字符串中是否包含某個關鍵字String info = "Java是最好的編程語言之一";boolean rs5 = info.contains("Java");System.out.println(rs5);// startwithSystem.out.println("--------");String info2 = "Java是最好的編程語言之一";boolean rs6 = info2.startsWith("Java");System.out.println(rs6);System.out.println("--------");// 分割字符串String str5 = "張無忌,周芷若,殷素素,趙敏";String[] names = str5.split(",");for(int i = 0; i < names.length; i++) {System.out.println(names[i]);}}
}

split這個成員方法,之前在python中也遇到。

如果方法不再記得了,都是可以到API文檔中查詢的。

另外:

==:

比較基本數據類型:比較具體的值。

比較引用數據類型:比較的是對象地址值。

package com.company;public class Main {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);System.out.println(s1 == s4);System.out.println(s3 == s4);System.out.println("-------------");System.out.println(s1.equals(s2));System.out.println(s1.equals(s3));System.out.println(s3.equals(s4));}
}

運行結果:

false
false
true
-------------
true
true
true

用戶登錄案例:

import java.util.Scanner;public class Main {public static void main(String[] args) {String username = "changchunhua";String password = "chang@123";for (int i=0; i<3; i++) {Scanner sc =  new Scanner(System.in);System.out.println("Please input username: ");String name = sc.nextLine();System.out.println("Please input password: ");String pwd = sc.nextLine();if (name.equals(username) && pwd.equals(password)) {System.out.println("Sign in susccessfully!");break;} else {if (2 - i == 0) {System.out.println("Your account is locked!");} else {System.out.println("Your has 2 - i times to sign in.");}}}}
}

運行結果:?

Please input username:
chang
Please input password:
chang@123
Your has 2 - i times to sign in.
Please input username:
changchun
Please input password:
chang@123
Your has 2 - i times to sign in.
Please input username:
changchunhua
Please input password:
chang@123
Sign in susccessfully!

字符串反轉:

package com.company;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("Please input a string: ");String line = sc.nextLine();String s = reverse(line);System.out.println("s: " + s);}public static String reverse(String s) {String ss = "";for(int i=s.length()-1; i>=0; i--) {ss += s.charAt(i);}return ss;}
}

運行結果:

Please input a string:
changchunhua
s: auhnuhcgnahc

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14601.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14601.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14601.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux安裝zsh并配置oh-my-zsh

配置oh-my-zsh 查看當前shell安裝zsh切換到zsh配置ohmysh 查看當前shell cat /etc/shells# /etc/shells: valid login shells /bin/sh /bin/bash /usr/bin/bash /bin/rbash /usr/bin/rbash /bin/dash /usr/bin/dash安裝zsh sudo apt install zsh# /etc/shells: valid login s…

blender 烘焙渲染圖片,已經導出fbx,導出貼圖。插件生成圖片

1.新建一個模型。選擇資產瀏覽器的材質&#xff0c;并拖動到模型身上&#xff0c;如下圖。資產瀏覽器的材質可以網上找。 2.打開著色器面板。正下方著色器窗口中&#xff0c;點擊空白取消選擇&#xff0c;然后右擊-添加-著色器-原理化BSDF&#xff0c;右擊-添加-紋理-圖像紋理。…

報錯 Attempt to assign to const or readonly variable 前端 const

Attempt to assign to const or readonly variable 遇到這個錯是因為給const聲明的變量進行第2次賦值。 因為const聲明的變量只能進行一次賦值&#xff0c;即常量。 ES6標準引入了新的關鍵字 const 來定義常量&#xff0c;const 與 let 都具有塊級作用域。 const 定義的是常量…

寶塔Linux下安裝EMQX服務并設置匿名訪問

簡述 之前有在Windows和Linux下搭建過EMQX服務并且使用方面都沒問題,但那都是使用的用戶和密碼方式訪問,且前提都是通過瀏覽器進入EMQX的配置頁面設置的屬性; 但這次使用的是騰訊云租用的寶塔Liniux,由于沒有瀏覽器只能通過命令行方式修改EMQX配置以達到目的;由于事先沒看…

【博主推薦】HTML5實現520表白、情人節表白模板源碼

文章目錄 1.設計來源1.1 表白首頁1.2 甜蜜瞬間11.3 甜蜜瞬間21.4 甜蜜瞬間31.5 甜蜜瞬間41.6 甜蜜瞬間51.7 甜蜜瞬間61.8 永久珍藏 2.效果和源碼2.1 頁面動態效果2.2 頁面源代碼2.3 源碼目錄2.4 更多為愛表白源碼 3.源碼下載地址 作者&#xff1a;xcLeigh 文章地址&#xff1a;…

國內安裝Axure RP Extension for Chrome插件

1、到項目的當前目錄來 2、后綴改成.rar 3、解壓成文件夾 4、拖入chrome中 我這里直接準備好了文件 鏈接&#xff1a;https://pan.baidu.com/s/1V98tx5LgXZRoKY7XjnIcrA 提取碼&#xff1a;gh13

中國上市公司融資約束指數數據上市公司SA指數與WW指數(2000-2023年)

上市公司融資約束指數&#xff0c;是用來評估公司面臨的融資限制程度的工具。SA指數由Hadlock和Pierce開發&#xff0c;基于公司規模和年齡計算&#xff0c;其中較小且較年輕的公司通常會有更高的指數值&#xff0c;表明其融資約束較大。另一方面&#xff0c;WW指數由Whited和W…

Win11徹底關閉“同意個人數據跨境傳輸”

Win11徹底關閉“同意個人數據跨境傳輸” 1 關閉對話框2. 修改Microsoft.CloudExperienceHost.winmd 1 關閉對話框 SHIFTF10WinEWinR輸入taskmgr關閉Microsoft賬戶進程 2. 修改Microsoft.CloudExperienceHost.winmd 找到C:\Windows\SystemApps\Microsoft.Windows.CloudExperi…

【靜態分析】在springboot使用太阿(Tai-e)03

參考&#xff1a;使用太阿&#xff08;Tai-e&#xff09;進行靜態代碼安全分析&#xff08;spring-boot篇三&#xff09; - 先知社區 1. JavaApi 提取 1.1 分析 預期是提取controller提供的對外API&#xff0c;例如下圖中的/sqli/jdbc/vuln 先看一下如何用tai-e去獲取router…

淺談分布式系統

目錄 一、單機架構二、分布式架構1、應用服務與數據庫分離2、負載均衡3、數據庫讀寫分離4、引入緩存5、數據庫分庫分表6、引入微服務 一、單機架構 單機架構&#xff0c;只有一臺服務器&#xff0c;這個服務器負責所有工作。 絕大多數公司的產品&#xff0c;都是這種單機架構。…

[論文筆記]REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS

引言 今天帶來一篇經典論文REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS的閱讀筆記&#xff0c;論文中文意思是 在語言模型中協同推理和行動。 雖然大型語言模型(LLMs)在語言理解和互動決策任務中展現出強大的能力&#xff0c;但它們在推理(例如思維鏈提示)和…

Rust 中 Mutex 的用法

在 Rust 中&#xff0c;Mutex&#xff08;互斥鎖&#xff09;是用于同步并發訪問共享資源的機制。Rust 標準庫中的 Mutex 結構體位于 std::sync::Mutex 中&#xff0c;它提供了線程安全的數據訪問。Mutex 保證了在同一時間只有一個線程可以訪問被鎖定的數據。 以下是 Mutex 的…

畫圖工具之PlantUML插件使用

文章目錄 1 PlantUML插件1.1 引言1.2 什么是PlantUML1.3 PlantUML插件1.3.1 IntelliJ IDEA中插件1.3.2 VS Code中插件1.3.3 使用例子 1.4 PlantUML時序圖語法1.4.1 聲明參與者1.4.2 消息傳遞1.4.2.1 同步消息1.4.2.2 異步消息1.4.2.3 返回消息1.4.2.4 自調用 1.4.3 生命線&…

比特米盒2代刷入ARMBIAN

概述 因為最近在整家庭NAS&#xff0c;類似魔百盒之類的機頂盒無法內置硬盤&#xff0c;所以將目光盯上了比特米盒、私家云以及和逸云&#xff0c;海鮮市場一番對比下來也就比特米盒&#xff08;CM2-B&#xff09;的性價比最高&#xff0c;而且還支持雙盤位&#xff0c;所以采…

【大模型】fineturn Q-wen

github上下載qwen1_5源碼 修改finetun.sh 然后在路徑qwen1_5/examples/sft下修改finetun.sh, 內容如下 #!/bin/bash export CUDA_DEVICE_MAX_CONNECTIONS1 DIRpwd# Guide: # This script supports distributed training on multi-gpu workers (as well as single-worker trai…

批處理--將指定磁盤根目錄所有隱藏的文件(包括文件夾)去除隱藏屬性

如下是實現的腳本&#xff1a;-------------------------------------------------- :loopcd / set /p driverName"請輸入驅動器盤符&#xff08;例如&#xff1a;C或c&#xff09;&#xff1a;"%driverName%: dir /AH %driverName%: pausefor /f "delims"…

Leetcode刷題2

文章目錄 前言尋找兩個正序數組的中位數1?? 雙指針快速排序2?? 第k小數解法 Z 字形變換1?? 個人解法2??巧妙解法13??巧妙解法2 字符串轉換整數 (atoi)1?? 常規方法2?? 作弊方法&#x1f62b; 整數轉羅馬數字1?? 常規方法&#xff1a;按照給定規則寫出判斷條件即…

前端面試題日常練-day32 【面試題】

題目 希望這些選擇題能夠幫助您進行前端面試的準備&#xff0c;答案在文末。 1. 在jQuery中&#xff0c;以下哪個選項用于獲取元素的文本內容&#xff1f; a) text() b) html() c) val() d) attr() 2. jQuery中&#xff0c;以下哪個選項用于在元素上添加一個自定義數據屬性…

感動心靈的聲音——帶情緒的AI配音技術在影視和廣告領域的應用

近年來&#xff0c;隨著人工智能技術的飛速發展&#xff0c;帶情緒的AI配音技術作為其中一項重要應用&#xff0c;正逐漸在影視和廣告行業展現其獨特的魅力和應用價值。傳統的配音工作不僅需要具備優秀的嗓音和表演能力&#xff0c;還要求配音演員能夠準確捕捉并表達角色的情感…

WSL調用docker

WSL&#xff08;windows subsystem linux&#xff09;是window系統的原生linux子系統&#xff0c;用于代碼開發很方便。 希望在wsl里面運行docker&#xff0c;首先要安裝docker在WSL中使用&#xff0c;大部分人的第一想法肯定是用以下命令行安裝&#xff08;個人不推薦&#x…