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));
    }
}

image

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"));
    }
}

image

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

image

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);
    }
}

image

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);
    }
}

image

二、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);
    }
}

image

三、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);
        }
    }
}

image

四、正则表达式

判断输入的字符是否全是英文

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);
            }
        }
    }
}

image

替换网址

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);
    }

}

image

分解英文句子为单词

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+"元");
    }
}

image

使用正则表达式解析

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+"元");
    }
}

image

posted @ 2022-01-05 21:05  项sir  阅读(223)  评论(0)    收藏  举报
标题