Java项目之模仿优快云做一个DBB博客

本文介绍了一个简单的博客项目实战案例,该项目模仿优快云博客功能,采用Java后端开发,利用thymeleaf模版,前端使用layui框架,并采用MySQL作为数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目源代码下载地址:https://download.youkuaiyun.com/download/mdxiaohu/10596423

不打算深入讲解,只做个记录。


上个月,做了个博客小项目练手。

当时的想法就是简单模仿一下优快云博客,做一个自己的博客。

首先,我先列出来,项目所要用到的技术。

Java基础:

差不多就这些,我在这里主要是回顾一个流程。

先看下我模仿的效果图。

前端:

使用了layui框架:http://www.layui.com/,不过这个框架可能更适合做前端程序的开发。

1.主页

2.登录页

3.注册页

4.文章管理页

5.写博客页

6.博客列表页

7.个人分类页

8.博客内容页

数据库:

使用了MySQL数据库

后端开发:

使用了thymeleaf模版

登录账号:admin

登录密码:admin123

<think>我们有一个任务:按照指定规律拆分字符串,并以特定格式输出。根据用户提供的引用,我们可以参考一些字符串处理的方法:引用[1]展示了使用split方法根据正则表达式拆分字符串。引用[2]展示了使用Matcher和Pattern来查找并替换特定位置的字符串。引用[3]提到了字符串格式化。用户需求:按照指定规律拆分字符串,并以特定格式输出。我们需要明确“指定规律”是什么?用户没有具体说明,但我们可以假设规律可能是:1.按照某个分隔符拆分(如空格、逗号等)2.按照固定长度拆分3.按照正则表达式匹配的位置拆分4.其他自定义规律由于用户没有具体说明规律,我们可以提供几种常见的拆分方式,并展示如何以特定格式输出。假设我们以第一种情况为例:按照正则表达式拆分(如引用[1]),然后以特定格式输出(比如用逗号连接,或者用方括号包围等)。但是,用户可能需要的“特定格式”也没有说明,我们可以假设为将拆分后的数组用某种分隔符连接,或者用其他方式格式化。考虑到用户引用了引用[2]和引用[3],可能涉及到更复杂的处理(如替换特定位置的匹配项)和格式化。我们可以设计一个函数,它接受三个参数:1.输入字符串2.拆分规律(可以是正则表达式,也可以是其他描述)3.输出格式(例如,我们可以定义一个格式字符串,用{}代表拆分后的每个元素)但是,由于Java中字符串拆分最常用的是split方法,而输出格式可以使用String.join或String.format等。然而,用户可能需要更复杂的规律,比如不是简单的分隔符,而是根据匹配的模式进行拆分。例如,将字符串按照数字和字母的交替进行拆分?这可能需要使用Matcher来查找。我们可以提供两种方法:方法1:使用String.split()进行简单拆分,然后格式化输出。方法2:使用Matcher和Pattern进行复杂拆分,然后格式化输出。下面我们分别实现这两种方法,并给出示例。方法1:使用split示例:按照正则表达式拆分字符串,然后以逗号连接并加上方括号输出。方法2:使用Matcher示例:按照匹配的模式将字符串拆分成若干子串,然后以特定格式输出。由于用户没有具体说明规律,我们假设一个常见的复杂情况:拆分连续的数字和连续的非数字(字母)部分。例如,字符串"abc123def456"拆分成["abc","123","def","456"],然后输出为"abc,123,def,456"。我们分别实现这两种方法。方法1:简单拆分(适用于分隔符明确的情况)例如,按照空格拆分:String[]parts=str.split("\\s+");然后输出:我们可以使用Arrays.toString(parts)或者自定义格式。方法2:复杂拆分(根据模式匹配)我们可以使用正则表达式匹配连续的数字或连续的非数字,然后逐个取出。下面我们编写代码:</think>### Java 按照指定规律拆分字符串的实现方法 在 Java 中按照指定规律拆分字符串,主要有以下几种实现方法: #### 1. **使用 `String.split()` 方法(基础拆分)** ```java public static void splitByRegex(String input, String regex) { String[] parts = input.split(regex); System.out.println("拆分结果: " + Arrays.toString(parts)); } // 示例用法 String text = "abc123def456ghi"; splitByRegex(text, "\\d+"); // 按数字拆分 // 输出: [abc, def, ghi] ``` #### 2. **使用 `Pattern` 和 `Matcher`(复杂规律拆分)** ```java public static void splitByPattern(String input, String patternStr) { Pattern pattern = Pattern.compile(patternStr); Matcher matcher = pattern.matcher(input); List<String> result = new ArrayList<>(); int lastEnd = 0; while (matcher.find()) { // 添加匹配前的子串 if (matcher.start() > lastEnd) { result.add(input.substring(lastEnd, matcher.start())); } // 添加匹配到的部分 result.add(matcher.group()); lastEnd = matcher.end(); } // 添加剩余部分 if (lastEnd < input.length()) { result.add(input.substring(lastEnd)); } System.out.println("拆分结果: " + result); } // 示例用法 splitByPattern("A1B22C333D", "\\d+"); // 拆分数字和字母 // 输出: [A, 1, B, 22, C, 333, D] ``` #### 3. **格式化输出结果** ```java public static String formatOutput(List<String> parts, String delimiter) { return String.join(delimiter, parts); } // 示例用法 List<String> data = Arrays.asList("北京", "上海", "广州"); System.out.println("格式化输出: " + formatOutput(data, "|")); // 输出: 北京|上海|广州 ``` #### 4. **综合应用示例** ```java public static void processString(String input, String regex, String outputFormat) { String[] parts = input.split(regex); String result = String.join(outputFormat, parts); System.out.println("最终结果: " + result); } // 示例用法 processString("2023-12-31", "-", "/"); // 日期格式转换 // 输出: 2023/12/31 ``` ### 关键点说明 1. **正则表达式选择**: - 简单分隔符:直接使用 `split("分隔符")` - 复杂规律:使用正则表达式如: - `\\d+`(连续数字) - `[A-Z]+`(连续大写字母) - `\\s+`(空白字符) 2. **特殊字符处理**: - 转义特殊字符:`.split("\\.")`(按点拆分) - 保留分隔符:使用 `Pattern` 和 `Matcher` 方案 3. **输出控制**: - 直接连接:`String.join()` - 自定义格式:`String.format()` 或循环拼接 > **提示**:对于包含空匹配的情况(如连续分隔符),使用 `split(regex, -1)` 保留空字符串,避免结果被截断[^1]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值