這篇文章帶給大家的內容是關於Java中String字串運算的介紹(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
一、字串運算String類別
1、概述
String是特殊的參考資料類型,它是final類別。
2.建構方法
String str = "abc";
相當於: char date[] = {'a','b ','c'};
String str = new String{data};
#3.主要方法
##char charAt(int index)傳回char指定索引處的值。 boolean contains(CharSequence s)當且僅當字串包含指定char值序列傳回trueboolean equals(Object anObject) 將次字串與指定物件進行比較#int indexOf(int ch) 傳回指定字元第一次出現的索引值int length() 傳回字串的長度,多用於迴圈的終止條件boolean matches(String regex) 判斷一個字串是否符合給定的規則表達式String replace(char oldChar,char newChar) 將字串中所有的oldChar替換為newChar#String split(String regex)將字串依照規矩進行切分String subString(int beginIndex) 傳回該字串的beginindex索引之後的字串String toLowerCase() 將該字串中的所有大寫字母變成小寫字母String toUpperCase() 將該字串中的所有小寫字母變成大寫字母String trim() 刪除該字串所有前導和尾隨的空格並傳回/*類型轉換*/static String valueOf(boolean b)
#傳回boolean參數的字串boolean形式。
static String valueOf(char c)
傳回 char參數的字串 char形式。
static String valueOf(char[] data)
傳回 char陣列參數的字串 char形式。
static String valueOf(char[] data, int offset, int count)
傳回 char陣列參數的特定子陣列的字串 char形式。
static String valueOf(double d)
傳回 double參數的字串 double形式。
static String valueOf(float f)
傳回 float參數的字串 float形式。
static String valueOf(int i)
傳回 int參數的字串 int形式。
static String valueOf(long l)
傳回 long參數的字串 long形式。
static String valueOf(Object obj)
傳回 Object參數的字串 Object形式。
4.示範案例
/** * @ author: PrincessHug * @ date: 2019/2/7, 17:09 * @ Blog: https://www.cnblogs.com/HelloBigTable/ */ public class StringAPIDemo { /** * 需求:计算字符串中大写字母、小写字母、数字出现的次数 * @param args 参数 */ public static void main(String[] args) { //通过用户输入得到一个字符串 String str = getString(); getCount(str); } private static void getCount(String str) { int upperNum = 0; int lowerNum = 0; int digit = 0; for (int i = 0;i< str.length();i++){ char c = str.charAt(i); /** * AscII码数字1-9(48-57),A-Z(65-91),a-z(97-123) */ if (c>=48 && c<=57){ digit++; } if (c>=65 && c<=91){ upperNum++; } if (c>=97 && c<=123){ lowerNum++; } } System.out.println("数字出现的次数为:" + digit); System.out.println("大写字母出现的次数为:" + upperNum); System.out.println("小写字母出现的次数为:" + lowerNum); } private static String getString() { System.out.println("请输入一个字符串:"); Scanner scanner = new Scanner(System.in); String s = scanner.nextLine(); return s; } }需求二:查詢父字串中某一個子字串出現的次數想法1:使用indexOf方法查詢子字串第一次出現的索引a,再使用subString方法傳回父字串索引(a 子字串長度)之後的字串,併計數1,循環該操作知道indexOf方法傳回值為-1停止,取得計數值即可。 想法2:使用split方法將父字串依照子字串進行切分得到String數組,使用subString方法取得父字串最後的字串是否等於子字串,若等於,傳回String數組的length長度;若不等,則傳回String陣列的length-1.
** * @ author: PrincessHug * @ date: 2019/2/7, 17:34 * @ Blog: https://www.cnblogs.com/HelloBigTable/ */ public class FindChildStringCount { /** * 需求:查询父字符串中某一个子字符串的数量 * @param args */ public static void main(String[] args) { String parent = "itstar123qweritstar()%%dfitstarsdgji"; String child = "itstar"; int num1 = getChildStringCount01(parent, child); int num2 = getChildStringCount02(parent,child); int num3 = getChildStringCount03(parent,child); System.out.println("方法一:" + num1 + "次。"); System.out.println("方法二:" + num2 + "次。"); System.out.println("方法三:" + num3 + "次。"); } private static int getChildStringCount02(String parent, String child) { String[] s = parent.split(child); if (child.equals(parent.substring(parent.length()-child.length()))){ return s.length; }else { return s.length-1; } } private static int getChildStringCount01(String parent,String child) { int num = 0; int index = 0; while ((index = parent.indexOf(child)) != -1){ num++; parent = parent.substring(index + child.length()); } return num; } private static int getChildStringCount03(String parent,String child){ String[] s = parent.split(child); int sum = 0; for (int i = 0;i < s.length;i++){ sum += s[i].length(); } return sum==parent.length()-(s.length-1)*child.length()?s.length-1:s.length; } }
5.String的規則符合(正規表示式)
^】條件:(1)位數為5-15位元
(2)开头数字不能为0
正则表达式为:regex = [1-9]\\d{4-14}
需求二:验证手机号码是否正确
手机号条件:
(1)位数为11位
(2)第一位为1
(3)第二位为3-9
正则表达式为:regex = [1]][3-9]\\d{9}
需求三:验证邮箱是否正确
邮箱条件:
(1)@之前为邮箱名,字母、数字、下划线都可以
(2)@符号
(3)@之后为邮箱域名(qq.com/163.com.cn)
正则表达式为:regex = \\w+@[a-zA-Z0-9]+(\\.\\w{2,3})+
以下为需求一:验证qq号码是否正确,需求二、三只需将regex修改为对应的正则表达式即可。
/** * @ author: PrincessHug * @ date: 2019/2/7, 21:51 * @ Blog: https://www.cnblogs.com/HelloBigTable/ */ public class MatchQQ { public static void main(String[] args) { while (true) { String qq = getQQ(); if (qq.equals("stop")){ break; }else { matchQQ(qq); } } } /** * @return 返回获取的qq号 */ private static String getQQ() { Scanner sc = new Scanner(System.in); System.out.println("请输入您的qq号"); String s = sc.nextLine(); return s; } /** * 验证qq号是否匹配regex表达式 * @param qq 获得用户输入的qq号 */ private static void matchQQ(String qq) { String regex = qqRegex(); if (qq.matches(regex)) { System.out.println("QQ号正确!"); } else { System.out.println("QQ号错误!"); } } /** * @return 返回qq的正则表达式 */ private static String qqRegex() { String regex = "[1-9][0-9]{4,14}"; return regex; } }
以上是Java中String字串運算的介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

類加載器通過統一的類文件格式、動態加載、雙親委派模型和平台無關的字節碼,確保Java程序在不同平台上的一致性和兼容性,實現平台獨立性。

Java編譯器生成的代碼是平台無關的,但最終執行的代碼是平台特定的。 1.Java源代碼編譯成平台無關的字節碼。 2.JVM將字節碼轉換為特定平台的機器碼,確保跨平台運行但性能可能不同。

多線程在現代編程中重要,因為它能提高程序的響應性和資源利用率,並處理複雜的並發任務。 JVM通過線程映射、調度機制和同步鎖機制,在不同操作系統上確保多線程的一致性和高效性。

Java的平台獨立性是指編寫的代碼可以在任何安裝了JVM的平台上運行,無需修改。 1)Java源代碼編譯成字節碼,2)字節碼由JVM解釋執行,3)JVM提供內存管理和垃圾回收功能,確保程序在不同操作系統上運行。

Javaapplicationscanindeedencounterplatform-specificissuesdespitetheJVM'sabstraction.Reasonsinclude:1)Nativecodeandlibraries,2)Operatingsystemdifferences,3)JVMimplementationvariations,and4)Hardwaredependencies.Tomitigatethese,developersshould:1)Conduc

云计算显著提升了Java的平台独立性。1)Java代码编译为字节码,由JVM在不同操作系统上执行,确保跨平台运行。2)使用Docker和Kubernetes部署Java应用,提高可移植性和可扩展性。

Java'splatformindependenceallowsdeveloperstowritecodeonceandrunitonanydeviceorOSwithaJVM.Thisisachievedthroughcompilingtobytecode,whichtheJVMinterpretsorcompilesatruntime.ThisfeaturehassignificantlyboostedJava'sadoptionduetocross-platformdeployment,s

容器化技術如Docker增強而非替代Java的平台獨立性。 1)確保跨環境的一致性,2)管理依賴性,包括特定JVM版本,3)簡化部署過程,使Java應用更具適應性和易管理性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。