Java中String类案例实现

简介: String类简单案例实现

 1、给定一个数组nums = {‘A’,‘B’, ‘C’},要求以[A,B,C]的值输出

import java.util.Arrays;
public class Diyi {
  public static void main(String[] args) {
    xiazhi121();
  }
  public static void xiazhi121() {
    char[] nums = { 'A', 'B', 'C' };
    char[] array= nums;
    String sum = Arrays.toString(array);//转换成String类型
    System.out.println(sum);
  }
}

image.gif

2、将一字符串反转后,再输出。如“ase234”->“432esa”

import java.util.Scanner;
public class Dier {
  public static void main(String[] args) {
        xiazhi121();
  }
  public static void xiazhi121() {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入需要反转的字符串:");
        String line = sc.nextLine();
    StringBuffer fanzhuang = new StringBuffer(line);
        fanzhuang = fanzhuang.reverse();//字符串反序输出
        System.out.println("反转之后的字符串为:" +"\n" + fanzhuang);
  }
}

image.gif

3、统计一个字符串在另一个字符串中出现的次数

public class Disan {
  public static void main(String[] args) {
    xiazhi121();
  }
    public static void xiazhi121(){
      String s = "ddffffbbbdddbbbfdsa";
      System.out.println("第一个字符串为:"+s);
      String s2="bbb";
      System.out.println("第二个字符串为:"+s2);
        String s1 = s.replace("bbb", "");
        int count = (s.length() -s1.length())/s2.length();//统计次数
        System.out.println("第二个字符串在第一个字符串出现的次数:"+count+"次");
    }
}

image.gif

4、编写一方法deleteCharAt(),功能为删除字符串的一个字符

public class Dishi {
  public static void main(String args[]) {
    deldteCharAt();
  }
  public static void deldteCharAt() {
    String str = "abcdDaCBA123";
    System.out.println("删除前的字符串为:" + str);
    String strNew = str.replace("a", "");//删除字符
    System.out.println("删除a字符之后:" + strNew);
  }
}

image.gif

5、输入一网站名,然后按小数点进行分割输出。如www.baidu.com输出为www    baidu    com

import java.util.Scanner;
public class Diwu {
  public static void main(String[] args) {
    xiazhi121();
  }
  public static void xiazhi121() {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入一个网站名:");
    String line = sc.nextLine();
    String[] firstArray = line.split("\\.");//按照“.”分割
    for (String a : firstArray) {
      System.out.print(a + "    ");//按要求输出
    }
  }
}

image.gif

6、将一字符串中的所有空格去掉再输出

public class Diliu {
  public static void main(String[] args) {
    xiazhi121();
  }
  public static void xiazhi121() {
    String str = "      abc    ";
    System.out.println("去除空格前:" + str);
    String quchu = str.trim();//忽略字符串首尾处空白
    System.out.println("去除空格后:" + quchu);
  }
}

image.gif

7、输入一人的身份证号,判断其合法性,再输出该人的所在省名,出生年月日,性别信息

import java.util.Scanner;
public class Diqi {
  public static void main(String[] args) {
    xiazhi121();
  }
  public static void xiazhi121() {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入一个身份证号:");
    String s = sc.nextLine();
    int i = 18;
    if (i != s.length()) {
      System.out.println("输入身份证号码有误");//多活动少提示输入错误
    } else {
      String year = s.substring(6, 10);//取身份证的年份
      String month = s.substring(10, 12);//取身份证的月份
      String day = s.substring(12, 14);//取身份证的天
      System.out.println("出生年月日为:" + year + "年" + month + "月" + day + "日");
      String sex = s.substring(16, 17);//取身份证代表性别的位数
      int a = Integer.valueOf(sex);
      if (a % 2 == 0) {
        System.out.println("此身份证号码的人是女性");
      } else {
        System.out.println("此身份证号码的人是男性");
      }
      String[] sun = { "11", "12", "13", "14", "15", "21", "22", "23", "31", "32", "33", "34", "35", "36", "37",
          "41", "42", "43", "44", "45", "46", "50", "51", "52", "53", "54", "61", "62", "63", "64", "65",
          "71", "81", "82" };//身份证对应的身份证第一位和第二位
      String[] sum = { "北京市", "天津市", "河北省", "山西省", "内蒙古自治区", "辽宁省", "吉林省", "黑龙江省", "上海市", " 江苏省", "浙江省", "安徽省",
          "福建省", "江西省", "山东省", " 河南省", "湖北省", " 湖南省", "广东省", " 广西壮族自治区", "海南省", "重庆市", "四川省", "贵州省", "云南省",
          " 西藏自治区", "陕西省", "甘肃省", "青海省", "宁夏回族自治区", "新疆维吾尔自治区", "台湾省", "香港特别行政区", "澳门特别行政区" };
      String pos = (s.substring(0, 2));//取出身份证一二位
      int sheng;
      for ( sheng = 0; sheng < sun.length; sheng++) {
        if (pos.equals(sun[sheng])) {
          break;//找到对应的省份退出循环
        }
      }
      System.out.println("此身份证的省份为:" + sum[sheng]);
    }
  }
}

image.gif

8、输入一字符串,分别统计出其中英文字母、空格、数字和其它字符的个数

import java.util.Scanner;
public class Diba {
    public static void main(String[] args) {
        xiazhi121();
    }
    public static void xiazhi121() {
        System.out.print("请输入一串字符:");
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();//将一行字符转化为字符串
        char[] b = str.toCharArray();//将字符串转换为字符数组
        int letters = 0;
        int num = 0;
        int blank = 0;
        int others = 0;
        int i = 0;
        while (i < b.length) {
            if ((b[i] >= 'A') && (b[i]) <= 'Z') {
                letters++;//计算英文字符个数
            } else if ((b[i] >= 'a') && (b[i]) <= 'z') {
                letters++;//计算英文字符个数
            } else if ((b[i] >= '0') && (b[i]) <= '9') {
                num++;//计算数字个数
            } else if (b[i] == ' ') {
                blank++;//计算空格个数
            } else {
                others++;//计算其他字符个数
            }
            i++;
        }
        System.out.println("英文字符共有:" + letters + "个");
        System.out.println("数字字符共有:" + num + "个");
        System.out.println("空格字符共有:" + blank + "个");
        System.out.println("其它字符共有:" + others + "个");
    }
}

image.gif


目录
相关文章
|
1天前
|
安全 Java 数据安全/隐私保护
Java一分钟之-Java反射机制:动态操作类与对象
【5月更文挑战第12天】本文介绍了Java反射机制的基本用法,包括获取Class对象、创建对象、访问字段和调用方法。同时,讨论了常见的问题和易错点,如忽略访问权限检查、未捕获异常以及性能损耗,并提供了相应的避免策略。理解反射的工作原理和合理使用有助于提升代码灵活性,但需注意其带来的安全风险和性能影响。
15 4
|
2天前
|
安全 Java 调度
Java一分钟:多线程编程初步:Thread类与Runnable接口
【5月更文挑战第11天】本文介绍了Java中创建线程的两种方式:继承Thread类和实现Runnable接口,并讨论了多线程编程中的常见问题,如资源浪费、线程安全、死锁和优先级问题,提出了解决策略。示例展示了线程通信的生产者-消费者模型,强调理解和掌握线程操作对编写高效并发程序的重要性。
41 3
|
3天前
|
Java
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
|
3天前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
|
4天前
|
Java 编译器 开发者
Java一分钟之-继承:复用与扩展类的特性
【5月更文挑战第9天】本文探讨了Java中的继承机制,通过实例展示了如何使用`extends`创建子类继承父类的属性和方法。文章列举了常见问题和易错点,如构造器调用、方法覆盖、访问权限和类型转换,并提供了解决方案。建议深入理解继承原理,谨慎设计类结构,利用抽象类和接口以提高代码复用和扩展性。正确应用继承能构建更清晰、灵活的代码结构,提升面向对象设计能力。
9 0
|
4天前
|
安全 Java 编译器
Java中String、StringBuilder和StringBuffer的区别
Java中String、StringBuilder和StringBuffer的区别
|
4天前
|
Java
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
14 0
时间轮-Java实现篇
在前面的文章《[时间轮-理论篇](https://developer.aliyun.com/article/910513)》讲了时间轮的一些理论知识,然后根据理论知识。我们自己来实现一个简单的时间轮。
|
1天前
|
Java 调度
Java一分钟之线程池:ExecutorService与Future
【5月更文挑战第12天】Java并发编程中,`ExecutorService`和`Future`是关键组件,简化多线程并提供异步执行能力。`ExecutorService`是线程池接口,用于提交任务到线程池,如`ThreadPoolExecutor`和`ScheduledThreadPoolExecutor`。通过`submit()`提交任务并返回`Future`对象,可检查任务状态、获取结果或取消任务。注意处理`ExecutionException`和避免无限等待。实战示例展示了如何异步执行任务并获取结果。理解这些概念对提升并发性能至关重要。
15 5
|
1天前
|
安全 Java 调度
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第12天】 在现代软件开发中,多线程编程是提升应用程序性能和响应能力的关键手段之一。特别是在Java语言中,由于其内置的跨平台线程支持,开发者可以轻松地创建和管理线程。然而,随之而来的并发问题也不容小觑。本文将探讨Java并发编程的核心概念,包括线程安全策略、锁机制以及性能优化技巧。通过实例分析与性能比较,我们旨在为读者提供一套既确保线程安全又兼顾性能的编程指导。