이 기사는 Java의 문자열 연산(코드 예제)을 소개합니다. 필요한 참고 자료가 있으면 도움이 될 것입니다.
1. 문자열 연산 문자열 클래스
1. 개요
문자열은 특수 참조 데이터 유형이며 최종 클래스입니다.
2. 생성 방법
String str = "abc";
동치: char date[] = {'a','b','c'};
String str = new String{data };
3. 메인 메소드
char charAt(int index) char의 지정된 인덱스에 있는 값을 반환합니다.
boolean contain(CharSequence s) 문자열에 지정된 char 값 시퀀스가 포함된 경우에만 true를 반환합니다.
boolean equals(Object anObject) 하위 문자열을 지정된 개체와 비교
int indexOf(int ch) 지정된 문자 번호를 반환합니다. 한 번 나타나는 인덱스 값
int length() 문자열의 길이를 반환하며 주로 루프 종료 조건에 사용됩니다.
boolean match(String regex) 문자열이 주어진 정규식과 일치하는지 확인
String replacement( char oldChar,char newChar) 문자열의 모든 oldChar를 newChar로 교체
String Split(String regex) 규칙에 따라 문자열을 분할합니다
String subString(int startIndex) 문자열의 시작 인덱스 인덱스 뒤에 있는 문자열을 반환
String toLowerCase() 문자열의 모든 대문자를 소문자로 변환
String toUpperCase() 문자열의 모든 소문자를 대문자로 변환
String Trim() 모든 선행 및 후행 공백을 제거하고 반환
/*유형 변환* /
static String valueOf(boolean b)
부울 매개변수의 문자열 부울 형식을 반환합니다.
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 매개변수의 긴 문자열 형식을 반환합니다.
static String valueOf(Object obj)
Object 매개변수의 문자열 Object 형식을 반환합니다.
참고: String 문자열 "=="과 equals 메서드의 차이점:
String str = ""를 통해 선언된 경우 ==와 같음을 모두 사용할 수 있습니다.
new String을 통해 선언된 경우 ("") 예, ==는 사용할 수 없으며 같음만 사용할 수 있습니다.
4. 데모 사례
요구 사항 1: 문자열의 대문자, 소문자 및 숫자 개수를 계산합니다.
아이디어: for 루프를 통해 문자열을 편리하게 만들고, charAt 메서드를 사용하여 각 문자를 얻습니다. 그런 다음 각 문자를 AscII 코드에 해당하는 값과 비교하여 대문자, 소문자 또는 숫자인지 확인하고 개수를 인쇄합니다.
/** * @ 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; } }
요구 사항 2: 상위 문자열에서 특정 하위 문자열의 발생 횟수를 쿼리
아이디어 1: indexOf 메서드를 사용하여 하위 문자열이 처음 나타나는 인덱스 a를 쿼리한 다음 subString 메서드를 사용하여 상위 문자열 인덱스(a+ 하위 문자열 길이) 및 count +1, indexOf 메서드의 반환 값이 -1이 될 때까지 이 작업을 반복하고 중지하고 count 값을 가져옵니다.
아이디어 2: 부모 문자열을 부분 문자열로 분할하여 문자열 배열을 얻으려면 subString 메서드를 사용하여 부모 문자열의 마지막 문자열이 부분 문자열과 같은지 확인하세요. 문자열 배열; 그렇지 않은 경우 문자열 배열의 길이-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. 문자열 규칙 일치(정규식)
정규식은 ID 번호, QQ 번호, 이메일 주소 등을 확인하는 데 자주 사용됩니다.
문자 클래스 및 의미:
[abc] => Abc를 사용할 수 있습니다
[a-zA-Z] => -9를 사용할 수 있습니다
d => [0-9]와 동일
D => 숫자일 수 없습니다.
w => [a-zA-Z0-9_ ]
x와 동일한 문자, 숫자 및 밑줄을 나타냅니다. => x가 한 번 표시되거나 한 번 표시되지 않음을 나타냅니다.
x* {n,m} => x가 n~m번 나타남을 나타냄
X+ => x가 적어도 한 번 나타남을 나타냄
^ => Ending
요구 사항 1: qq 숫자가 올바른지 확인 qq 숫자 조건:
(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의 문자열 연산 소개(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
