动态字符串

简介: 动态字符串

一、动态字符串
将一个由英文字母组成的字符串转换成从末尾开始每三个字母用逗号分隔的形式。

import java.util.Scanner;
public class Main {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    String str = scanner.next();
    StringBuilder stringBuilder = new StringBuilder();
    int n = str.length()%3;
    for (int i = 0; i < n; i++) {
        char ch = str.charAt(i);
        stringBuilder.append(ch);
    }
    stringBuilder.append(",");
    int count = 0;
    for (int i = n; i < str.length(); i++) {
        char ch = str.charAt(i);
        count++;
        if(count % 3 == 0 && i != str.length() - 1) {
            stringBuilder.append(ch).append(",");
        }else {
            stringBuilder.append(ch);
        }
    }
    System.out.println(stringBuilder.toString());
}

}

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
二、十进制数转二进制数
控制台随机输入一个十进制数,请你将它转换为二进制数并输出

1.直接使用包装类方法

public class Main {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int n = scanner.nextInt();
    System.out.println(Integer.toBinaryString(n));
}

}
1
2
3
4
5
6
7
2.暴力求法

public class Main {
public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);
    int n = scanner.nextInt();
    if(n == 0) {
        System.out.println(n);
        return;
    }
    StringBuilder str = new StringBuilder();
    while(n > 0) {
        str.append(n % 2);
        n /= 2;
    }
    System.out.println(str.reverse());
}

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
三、判断学生成绩
定义一个方法用于录入学生的考试成绩,要求考试成绩必须在0-100之间,不满足就产生一个自定义异常,控制台输出一个错误信息"分数不合法"(请输出自定义异常对象的错误信息,将错误信息设置为分数不合法)

import java.util.*;

public class Main {

public static void main(String[] args) throws ScoreException{
    Scanner scanner = new Scanner(System.in);
    int score = scanner.nextInt();
    try {
        if(score < 0 || score > 100) {
        throw new ScoreException("分数不合法");
    }else {
        System.out.println(score);
    }
    } catch(ScoreException e) {
        System.out.println(e.getMessage());
    }     
}

}

class ScoreException extends Exception {

public ScoreException(String message) {
    super(message);
}

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
四、统计字符串中字母出现次数
给定一个字符串,随机输入一个字母,判断该字母在这个字符串中出现的次数

public class Main {

public static void main(String[] args) {
    String string = "H e l l o ! n o w c o d e r";
    Scanner scanner= new Scanner(System.in);
    String word = scanner.next();
    scanner.close();
    System.out.println(check(string, word));
}
public static int check(String str, String word) {
    int count = 0;
    for (int i = 0; i < str.length(); i++) {
        char ch = str.charAt(i);
        if(ch == word.charAt(0)) {
            count++;
        }
    }
    return count;
}

}

相关文章
|
存储 传感器 安全
【串口通信】使用C++和Qt设计和实现串口协议解析器(二)
【串口通信】使用C++和Qt设计和实现串口协议解析器
1174 0
|
前端开发 API
uniapp中为什么会出现跨域问题,如何解决
uniapp中为什么会出现跨域问题,如何解决
4718 0
|
存储 消息中间件 NoSQL
亿级消息系统的核心存储:Tablestore发布Timeline 2.0模型
互联网快速发展的今天,社交类应用、消息类功能大行其道,占据了大量网络流量。大至钉钉、微信、微博、知乎,小至各类App的推送通知,消息类功能几乎成为所有应用的标配。根据场景特点,我们可以将消息类场景归纳成三大类:IM(钉钉、微信)、Feed流(微博、知乎)以及常规消息队列。
17019 0
|
前端开发 网络协议 Dubbo
超详细Netty入门,看这篇就够了!
本文主要讲述Netty框架的一些特性以及重要组件,希望看完之后能对Netty框架有一个比较直观的感受,希望能帮助读者快速入门Netty,减少一些弯路。
93598 33
超详细Netty入门,看这篇就够了!
|
SQL 关系型数据库 数据库
学习分布式事务Seata看这一篇就够了,建议收藏
学习分布式事务Seata看这一篇就够了,建议收藏
20440 2
|
9月前
|
搜索推荐
课时10:sublime的基本设置
今天,我们来聊聊如何对SublimeText进行简单的个性化配置。在使用SublimeText的过程中,很多人都会遇到一些问题,比如Sublime自带的字体不太好看,或者字体大小不符合个人需求,不是偏大就是偏小。接下来,我们就详细看看如何调整这些设置。 1.字体大小与样式调整 2.主题安装与配置
1081 1
|
缓存 安全 Java
全面解读ConcurrentHashMap:Java中的高效并发数据结构
全面解读ConcurrentHashMap:Java中的高效并发数据结构
2532 2
|
11月前
|
Java 关系型数据库 MySQL
MySQL 分库分表方案
本文总结了数据库分库分表的相关概念和实践,针对单张表数据量过大及增长迅速的问题,介绍了垂直和水平切分的方式及其适用场景。文章分析了分库分表后可能面临的事务支持、多库结果集合并、跨库join等问题,并列举了几种常见的开源分库分表中间件。最后强调了不建议水平分库分表的原因,帮助读者在规划时规避潜在问题。
1099 20
|
设计模式 Java
Netty Pipeline详解!
本文深入剖析了 Netty 的管道(Pipeline)设计,Netty 是一个基于 Java NIO 的高性能网络应用框架。文章详细介绍了 Pipeline 的原理、源码及设计思维。Pipeline 作为事件处理链条,包含多个处理器,负责处理入站和出站事件。核心组件包括 `ChannelPipeline`、`ChannelHandler` 和 `ChannelHandlerContext`。Netty 通过链式结构和上下文管理实现了高效的事件传播机制,具备高吞吐量和低延迟的特点。本文还探讨了 Pipeline 的职责分离、链式处理、高内聚低耦合等设计原则,为高性能网络编程提供了宝贵的启示。
399 9
|
存储 数据挖掘 Linux
探索Linux的ls命令:深入解析与实用指南
**探索Linux的`ls`命令:简明指南** `ls`命令用于列出目录内容,是Linux用户的基础工具。它提供灵活的参数定制输出,如 `-l` 显示详细信息,`-a` 显示隐藏文件,`-h` 以易读格式显示大小,`-R` 递归列出子目录。结合其他命令和管道,`ls`能用于数据分析。注意权限和使用最佳实践,如避免多余参数,谨慎使用通配符,并利用`man ls`查阅手册以深入学习。善用`ls`能提升Linux操作效率。