JAVA字符串和正则表达式
一、String
1.1、平均数以及进制转换
package com.String.String;
public class avg {
public static void main(String[] args) {
double n ,sum = 0.0;
for (int i = 0; i < args.length; i++) {
sum =sum+Double.parseDouble(args[i]);
}
n = sum/args.length;
System.out.println("平均数"+n);
int number = 8658;
String binaryString = Long.toBinaryString(number);
System.out.println(number+"二进制"+binaryString);
System.out.println(number+"八进制"+Long.toOctalString(number));
System.out.println(number+"十六进制"+Long.toHexString(number));
System.out.println(number+"十六进制"+Long.toString(number,16));
System.out.println(number+"八进制"+Long.toString(number,8));
}
}

1.2、equals比较相同与contains是否含有
package com.String.String;
public class Equals {
public static void main(String[] args) {
String s1,s2;
s1 = new String("we are students");
s2 = new String("we are students");
System.out.println(s1.equals(s2)+" ");
System.out.println(s1==s2);
String s3,s4;
s3="how are you";
s4="how are you";
System.out.println(s3.equals(s4)+"");
System.out.println(s3==s4);
System.out.println(s1.contains(s3)+"");
System.out.println(s2.contains("stu"));
}
}

1.3、toString重写
package com.String.String;
import java.util.Date;
class Student{
String name;
double score;
public Student(String name, double score) {
this.name = name;
this.score = score;
}
@Override
public String toString() {
return "姓名:"+name+"分数"+score;
}
}
class TV{
String name;
double prcie;
public TV(String name, double prcie) {
this.name = name;
this.prcie = prcie;
}
}
public class ToString重写 {
public static void main(String[] args) {
Date date = new Date();
Student student = new Student("张三",89);
TV tv = new TV("电视机",8776);
System.out.println(date.toString());
System.out.println(student.toString());
System.out.println(tv.toString());
}
}

1.4、加密
package com.String.String;
import java.util.Scanner;
public class TocharArray {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
char a[]=s.toCharArray();
for (int i = 0; i < a.length; i++) {
a[i]=(char)(a[i]^'W');
}
String secret = new String(a);
System.out.println("密文:"+secret);
for (int i = 0; i < a.length; i++) {
a[i]=(char)(a[i]^'W');
}
String code = new String(a);
System.out.println("原文:"+code);
}
}

1.5、字符串转化为字节数组
package com.String.String;
import java.util.Scanner;
public class TocharArray {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
char a[]=s.toCharArray();
for (int i = 0; i < a.length; i++) {
a[i]=(char)(a[i]^'W');
}
String secret = new String(a);
System.out.println("密文:"+secret);
for (int i = 0; i < a.length; i++) {
a[i]=(char)(a[i]^'W');
}
String code = new String(a);
System.out.println("原文:"+code);
}
}

二、StringBuffer
package com.String.StringBuffer;
public class test {
public static void main(String[] args) {
StringBuffer str = new StringBuffer("012345687");
str.append("sdfhidos").toString();
System.out.println( str.charAt(5));
str.setCharAt(0,'a');
str.setCharAt(1,'b');
System.out.println(str);
str.insert(2,"****");
System.out.println(str);
str.delete(4,8);
System.out.println(str);
}
}

三、StringTokenizer分解
package com.String.StringTokenizer;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Test {
public static void main(String[] args) {
String[] mess={"整数部分","小数部分"};
Scanner scanner = new Scanner(System.in);
double x= scanner.nextDouble();
String s = String.valueOf(x);
StringTokenizer fenxi = new StringTokenizer(s,".");
for (int i = 0; fenxi.hasMoreTokens(); i++) {
String str = fenxi.nextToken();
System.out.println(mess[i]+":"+str);
}
}
}

四、正则表达式
判断输入的字符是否全是英文
package com.String.正则表达式;
import java.util.Scanner;
public class 判断英文 {
public static void main(String[] args) {
String regex = "[a-zZ-Z]+";
Scanner scanner = new Scanner(System.in);
System.out.println("输入一行文本(输入#结束程序):");
String str = scanner.nextLine();
while (str!=null){
if(str.matches(regex)){
System.out.println(str+"中的字符都是英文");
}
else{
System.out.println(str+"中含有非英文字母");
}
System.out.println("输入一行文本(输入#结束程序):");
str = scanner.nextLine();
if(str.startsWith("#")){
System.exit(0);
}
}
}
}

替换网址
package com.String.正则表达式;
public class 替换 {
public static void main(String[] args) {
String str="请登录:http://www.cctv.cn看电视";
String regex = "(http://|www)[.]?\\w+[.]{1}\\w+[.]{1}\\p{Alpha}+";
String newStr = str.replaceAll(regex,"");
System.out.println(str);
System.out.println(newStr);
}
}

分解英文句子为单词
package com.String.正则表达式;
import java.util.Scanner;
public class 分解 {
public static void main(String[] args) {
System.out.println("请输入一行文本");
Scanner scanner = new Scanner(System.in);
String str=scanner.nextLine();
String regex = "[\\r\\d\\p{Punct}]+";
String words[] = str.split(regex);
for (int i = 0; i < words.length; i++) {
int m=i+1;
System.out.println("单词"+m+":"+words[i]);
}
}
}
五、Scanner
解析字符串
package com.String.Scanner;
import java.util.InputMismatchException;
import java.util.Scanner;
public class 解析字符串 {
public static void main(String[] args) {
String cost = "TV cost 877 dollar,Computer cost 2398";
Scanner scanner = new Scanner(cost);
double sum=0;
while(scanner.hasNext()){
try {
double price = scanner.nextDouble();
sum+=price;
System.out.println(price);
} catch (InputMismatchException e) {
String t = scanner.next();
}
}
System.out.println("总消费:"+sum+"元");
}
}

使用正则表达式解析
package com.String.Scanner;
import java.util.InputMismatchException;
import java.util.Scanner;
public class 正则表达式解析 {
public static void main(String[] args) {
String cost="市话费:176.89,长途费:189.98元,网络费:928.66元";
Scanner scanner = new Scanner(cost);
scanner.useDelimiter("[^012345678.]+");
double sum = 0;
while (scanner.hasNext()){
try {
double price = scanner.nextDouble();
sum += price;
System.out.println(price);
}catch (InputMismatchException e){
String str=scanner.next();
}
}
System.out.println("总通信费用:"+sum+"元");
}
}


浙公网安备 33010602011771号