真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java字符串類的代碼 java 字符串常用方法

java中怎么執(zhí)行字符串中的代碼

轉(zhuǎn):

成都創(chuàng)新互聯(lián)公司是網(wǎng)站建設專家,致力于互聯(lián)網(wǎng)品牌建設與網(wǎng)絡營銷,專業(yè)領(lǐng)域包括做網(wǎng)站、成都網(wǎng)站設計、電商網(wǎng)站制作開發(fā)、重慶小程序開發(fā)公司、微信營銷、系統(tǒng)平臺開發(fā),與其他網(wǎng)站設計及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡品牌建設經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!

在javascript中eval()可以實現(xiàn)字符串轉(zhuǎn)代碼,java中需要使用動態(tài)編譯。

把獲得的字符串寫入一個臨時文件中,然后編譯它,在調(diào)用其中的函數(shù)。

我們把要轉(zhuǎn)換的字符串構(gòu)造一個完整的類:如果方法是有返回值的.則:

public object eval(string str){

//生成java文件

string s = "class temp{";

s += "object rt(){"

s += "myclass mc = new myclass();"

s += " return mc."+str+"();";

s += "}"

s +="}";

file f = new file("temp.java");

printwriter pw = new printwriter(new filewriter(f));

pw.println(s);

pw.close();

//動態(tài)編譯

com.sun.tools.javac.main javac = new com.sun.tools.javac.main();

string[] cpargs = new string[] {"-d", "所在目錄","temp.java"};

int status = javac.compile(cpargs);

if(status!=0){

system.out.println("沒有成功編譯源文件!");

return null;

}

//調(diào)用temp的rt方法返回結(jié)果:

myclassloader mc = new myclassloader();

class clasz = mc.loadclass("test.class",true);

method rt = clasz.getmethod("rt", new class[]{ string[].class });

return rt.invoke(null, new object[] { new string[0] });

//如果方法沒有返回就直接調(diào)用

}

我們可以先寫好多個重載的eval,有返回值和沒有返回值的.以及可以傳遞參數(shù)的.

這樣我們就可以用字符串轉(zhuǎn)換為java的語句來執(zhí)行.

string類的表達式怎么算java

PHP中文網(wǎng)

Java中String字符串運算的介紹(代碼示例)

?

php中文網(wǎng)課程

回答于 2019-02-11

本篇文章給大家?guī)淼膬?nèi)容是關(guān)于Java中String字符串運算的介紹(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

一、字符串運算 String類

1、概述

String是特殊的引用數(shù)據(jù)類型,它是final類。

2.構(gòu)造方法

String str = "abc";

相當于: char date[] = {'a','b','c'};

String str = new String{data};

3.主要方法

char charAt(int index)返回char指定索引處的值。

boolean contains(CharSequence s)當且僅當字符串包含指定char值序列返回true

boolean equals(Object anObject)將次字符串與指定對象進行比較

int indexOf(int ch)返回指定字符第一次出現(xiàn)的索引值

int length()返回字符串的長度,多用于循環(huán)的終止條件

boolean matches(String regex)判斷一個字符串是否匹配給定的規(guī)則表達式

String replace(char oldChar,char newChar) 將串中所有的oldChar替換為newChar

String split(String regex)將字符串按照規(guī)矩進行切分

String subString(int beginIndex) 返回該字符串的beginindex索引之后的字符串

String toLowerCase()將該字符串中的所有大寫字母變?yōu)樾懽帜?/p>

String toUpperCase()將該字符串中的所有小寫字母變?yōu)榇髮懽帜?/p>

String trim()刪除該字符串所有前導和尾隨的空格并返回

/*類型轉(zhuǎn)換*/

static String valueOf(boolean b)

返回 boolean參數(shù)的字符串 boolean形式。

static String valueOf(char c)

返回 char參數(shù)的字符串 char形式。

static String valueOf(char[] data)

返回 char數(shù)組參數(shù)的字符串 char形式。

static String valueOf(char[] data, int offset, int count)

返回 char數(shù)組參數(shù)的特定子陣列的字符串 char形式。

static String valueOf(double d)

返回 double參數(shù)的字符串 double形式。

static String valueOf(float f)

返回 float參數(shù)的字符串 float形式。

static String valueOf(int i)

返回 int參數(shù)的字符串 int形式。

static String valueOf(long l)

返回 long參數(shù)的字符串 long形式。

static String valueOf(Object obj)

返回 Object參數(shù)的字符串 Object形式。

注意:String字符串“==”與equals方法的區(qū)別:

如果是通過String str = ""聲明的,==和equals都可是使用;

如果是通過new String ("")聲明的,不能用==,只能用equals。

4.演示案例

需求一:計算一個字符串中大寫字母、小寫字母和數(shù)字的個數(shù)

思路:將字符串通過for循環(huán)進行便利,使用charAt方法獲取每一位字符,然后將每一位字符與AscII碼對應的值相對比判斷是大寫字母、小寫字母、數(shù)字,計數(shù)打印。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

/**

* @ author: PrincessHug

* @ date: 2019/2/7, 17:09

* @ Blog:

*/

publicclassStringAPIDemo {

/**

* 需求:計算字符串中大寫字母、小寫字母、數(shù)字出現(xiàn)的次數(shù)

* @param args 參數(shù)

*/

publicstaticvoid main(String[] args) {

//通過用戶輸入得到一個字符串

String str = getString();

getCount(str);

}

privatestaticvoid 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碼數(shù)字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("數(shù)字出現(xiàn)的次數(shù)為:"+ digit);

System.out.println("大寫字母出現(xiàn)的次數(shù)為:"+ upperNum);

System.out.println("小寫字母出現(xiàn)的次數(shù)為:"+ lowerNum);

}

privatestaticString getString() {

System.out.println("請輸入一個字符串:");

Scanner scanner =newScanner(System.in);

String s = scanner.nextLine();

returns;

}

}

需求二:查詢父字符串中某一個子字符串出現(xiàn)的次數(shù)

思路1:使用indexOf方法查詢子字符串第一次出現(xiàn)的索引a,再使用subString方法返回父字符串索引(a+子字符串長度)之后的字符串,并計數(shù)+1,循環(huán)該操作知道indexOf方法返回值為-1停止,獲取計數(shù)值即可。

思路2:使用split方法將父字符串按照子字符串進行切分得到String數(shù)組,使用subString方法獲取父字符串最后的字符串是否等于子字符串,若等于,返回String數(shù)組的length長度;若不等,則返回String數(shù)組的length-1.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

**

* @ author: PrincessHug

* @date: 2019/2/7, 17:34

* @ Blog:

*/

publicclassFindChildStringCount {

/**

* 需求:查詢父字符串中某一個子字符串的數(shù)量

* @param args

*/

publicstaticvoid 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 +"次。");

}

privatestaticint getChildStringCount02(String parent, String child) {

String[] s = parent.split(child);

if(child.equals(parent.substring(parent.length()-child.length()))){

returns.length;

}else{

returns.length-1;

}

}

privatestaticint getChildStringCount01(String parent,String child) {

int num = 0;

int index = 0;

while((index = parent.indexOf(child)) != -1){

num++;

parent = parent.substring(index + child.length());

}

returnnum;

}

privatestaticint 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();

}

returnsum==parent.length()-(s.length-1)*child.length()?s.length-1:s.length;

}

}

5.String的規(guī)則匹配(正則表達式)

正則表達式常用于驗證身份證號、qq號、郵箱等

字符類及含義:

[abc]=abc都可以

[a-zA-Z] =a-z或者A-Z都可以,兩頭都是閉區(qū)間

[0-9]=數(shù)字0-9都可以

\d = 與[0-9]一樣

\D = 不能是數(shù)字

\w = 表示字母、數(shù)字、下劃線都可以,等于[a-zA-Z0-9_]

x? = 表示x出現(xiàn)一次或一次也沒有

x* = 表示x出現(xiàn)了零次或多次

X{n}  = 表示x出現(xiàn)了n次

X{n,m} = 表示x出現(xiàn)了n到m次

X+ = 表示x至少出現(xiàn)了一次

^  = 表示正則表達式的開頭

  = 表示正則表達式結(jié)尾

需求一:驗證qq號碼是否正確

qq號碼條件:

(1)位數(shù)為5-15位

(2)開頭數(shù)字不能為0

正則表達式為:regex = [1-9]\\d{4-14}

需求二:驗證手機號碼是否正確

手機號條件:

(1)位數(shù)為11位

(2)第一位為1

(3)第二位為3-9

正則表達式為:regex = [1]][3-9]\\d{9}

需求三:驗證郵箱是否正確

郵箱條件:

(1)@之前為郵箱名,字母、數(shù)字、下劃線都可以

(2)@符號

(3)@之后為郵箱域名(qq.com/163.com.cn)

正則表達式為:regex = \\w+@[a-zA-Z0-9]+(\\.\\w{2,3})+

以下為需求一:驗證qq號碼是否正確,需求二、三只需將regex修改為對應的正則表達式即可。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

/**

* @ author: PrincessHug

* @ date: 2019/2/7, 21:51

* @ Blog:

*/

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 =newScanner(System.in);

System.out.println("請輸入您的qq號");

String s = sc.nextLine();

returns;

}

/**

* 驗證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}";

returnregex;

}

}

Java的字符串都有什么?字符串可以轉(zhuǎn)換為任意數(shù)值嗎?

Java字符串類包括String、StringBuffer、StringBuilder。字符串之間是可以更改數(shù)值的。比如使用Parseint(S)方法,該方法是靜態(tài)的,不會產(chǎn)生多余的以int形式返回的對象,并且在底層查看源代碼時,如果輸入的字符串內(nèi)容不是int類型,如果它是空的,并且輸入的內(nèi)容超過int的極限,則會發(fā)現(xiàn)numberformatexception類型異常。

java字符串string的使用方法是什么?

String類別是一個不可更改的字符串,所以說string類實際上可以被認為是只讀的一個字符串,但是即使如此,string類也提供了許多可用的方法,下面將詳細介紹這些方法。例如string()、string、string(byte[ ])、string(char[ ])等。上面列出的一些普通string類構(gòu)造函數(shù)以及其他string類構(gòu)造函數(shù),例如從數(shù)組的初始位置開始。

字符串StringBuilder有什么用處?

StringBuilder可以使用可變字符串操作,這將提高字符串性能。在StringBuilder類別中,也有一些類似的方法,如上面String類別中描述的indexof(char)。但是我們使用StringBuilder類,它主要用于在字符串中添加和刪除字符。其次,StringBuilder類主要稱為用于構(gòu)建字符串的字符串,因為StringBuilder類用于提高性能,因為String類不會更改,實際上虛擬機在更改String類時在底層運行。

StringBuilder和StringBuffer有什么區(qū)別?

StringBuilder和StringBuffer的功能沒有顯著區(qū)別,除了消除非線程安全問題,有效地降低了成本以外,在大多數(shù)情況下是首選的字符串連接選項。StringBuffer提供了一個類來解決平鋪頂部過多的中間對象的問題,我們可以使用Append或Add方法將字符串添加到現(xiàn)有序列的末尾或指定位置。


網(wǎng)頁題目:Java字符串類的代碼 java 字符串常用方法
文章鏈接:http://weahome.cn/article/dddgppc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部