前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java实现字符串单词反转

Java实现字符串单词反转

作者头像
lexingsen
发布于 2022-02-24 09:48:06
发布于 2022-02-24 09:48:06
55900
代码可运行
举报
文章被收录于专栏:乐行僧的博客乐行僧的博客
运行总次数:0
代码可运行

一.方法一 思想: 1.首先将字符串转换成字符数组,方便索引字符。 2.反转整个字符数组 3.反转每个单词,单词是如何划分的:维护一个单词的起始索引和结束索引i,j,分别表示一个单词的起始下标和结尾下标,对这个区间的字符数组进行反转。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 public static void reverse(char[]arr,int i ,int j) {
    //每个单词首位交换
    while (i < j){
      swap(arr, i ++, j --);
    }
  }
  public static void swap(char[] arr, int i, int j){
    char brr = arr[i];
    arr[i] = arr[j];
    arr[j] = brr;

  }
 public static void rev(String word){
    char[] a = word.toCharArray();
    int n = a.length;
    reverse(a,0,n-1);
    for (int i=0; i<n; ++i) {
      int j = i;
      for (; j<n && a[j]!=' '; j++);
      reverse(a, i, j-1);
      i = j;
    }
    System.out.println(a);
  }

二.方法二 思想: 1.使用String的split方法,空格字符当分隔符,切割字符串存入一个字符串数组。 2.反转整个输入 3.遍历数据,拼接字符串,当不是最后一个元素时,中间添加空格

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[] args) {
  String s = "hello world ni hao shi jian";
  String[] arr = s.split(" ");
  int i=0, j=arr.length-1;
  while (i < j) {
    String x = arr[i];
    arr[i] = arr[j];
    arr[j] = x;
    i ++;j--;
  }
  String res="";
  for (int k=0; k<arr.length; ++k) {
    res = res + arr[k];
    if (k != arr.length-1) res += " ";
  }
  System.out.println(res);
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Go语言核心36讲(Go语言基础知识二)--学习笔记
我们已经知道,环境变量 GOPATH 指向的是一个或多个工作区,每个工作区中都会有以代码包为基本组织形式的源码文件。
郑子铭
2021/10/13
3610
Go语言核心36讲(Go语言基础知识二)--学习笔记
命令源码文件
定义:命令源码文件是程序的原型入口,是每个可独立运行的程序必须拥有的,我们可以通过构建和安装生成对应的可执行文件,后者一般与该命令源码文件的直接父目录同名
酷走天涯
2019/06/11
7550
命令源码文件
从源码的角度看Go语言flag库如何解析命令行参数!
我上周五喝酒喝到晚上3点多,确实有点罩不住啊,整个周末都在休息和睡觉,文章鸽了几天,想不到就有两个人跑了。
机智的程序员小熊
2021/08/12
8270
golang flag包使用笔记
https://books.studygolang.com/The-Golang-Standard-Library-by-Example/chapter13/13.1.html
我的小碗汤
2018/08/22
1.5K0
golang flag包使用笔记
【Golang】命令源码文件
命令源码文件是程序的运行入口,是每个可独立运行的程 序必须拥有的。我们可以通过构建或安装,生成与其对应的可执行文件,后者一般会与该命令源码文件的直接父目录同名。 如果一个源码文件声明属于main包,并且包含一个无参数声明且无结果声明的main函数,那么它就是命令源码文件。
MaybeHC
2024/04/23
1820
【Golang】命令源码文件
GO 每日一库之1:flag
我一直在想,有什么方式可以让人比较轻易地保持每日学习,持续输出的状态。写博客是一种方式,但不是每天都有想写的,值得写的东西。
luckpunk
2023/09/09
3200
用 Go 构建一个区块链 -- Part 3: 持久化和命令行接口
翻译的系列文章我已经放到了 GitHub 上:blockchain-tutorial,后续如有更新都会在 GitHub 上,可能就不在这里同步了。如果想直接运行代码,也可以 clone GitHub 上的教程仓库,进入 src 目录执行 make 即可。
用户1558438
2018/08/23
4770
Go实战 | 让flag支持从文件中读取命令行参数
golang标准库提供了flag包来处理命令行参数。常规的使用都是在命令行中启动服务的时候一一的输入,让程序解析。今天给大家介绍一种可以从文件中读取命令行参数的实现方法。
Go学堂
2023/01/31
1.4K0
Go语言核心36讲(Go语言基础知识四)--学习笔记
还记得吗?Go 语言中的程序实体包括变量、常量、函数、结构体和接口。 Go 语言是静态类型的编程语言,所以我们在声明变量或常量的时候,都需要指定它们的类型,或者给予足够的信息,这样才可以让 Go 语言能够推导出它们的类型。
郑子铭
2021/10/14
3480
Go语言核心36讲(Go语言基础知识四)--学习笔记
​​区块链持久化--golang实现区块链系列之三
本篇使用boltdb的简易数据库将区块链的数据持久化到一个文件中。boltdb是kv形式保存的。 下面代码:
若与
2018/10/12
6140
​​区块链持久化--golang实现区块链系列之三
Go 命令行解析 flag 包之通过子命令实现看 go 命令源码
正式介绍子命令的实现之前,先了解下 flag 包中的一个类型,FlagSet,它表示了一个命令。
波罗学
2019/12/02
1.2K0
教你打造最简比特币之持久化
开发环境:Go语言 本教程是学习Jeiwan的博客后的学习笔记,代码实现也参考它的为主,精简了叙述并在适当位置添加了一些必备的小知识和适当的代码注释,如介绍哈希。 本教程是为了逐步教你设计一款简化的区块链原型币。通过我们不断添加功能,完成一个可交易的原型币。 本节我们增加持久化的功能,可以持久化区块链到本地文件。 单机版,仅支持保存信息✅ 工作量证明✅ 持久化 选择数据库 目前,我们的原型币是存储在内存里的,每次运行结束后消失。而真正的比特币账本是需要持久化保存到本地的,比特币的核心开发者们,选择的是 Le
linxinzhe
2018/04/10
9150
一篇文章带你搞定Go语言中flag包使用
Hey,大家好,我是码农,星期八,这次来讲一下的Go语言中,比较常用的一个包flag包。
Go进阶者
2021/03/08
1K0
一篇文章带你搞定Go语言中flag包使用
1.Go语言之标准库学习记录(1)
描述: 我们进行Go语言编程之中当遇到不熟悉的内置函数时, 可以采用go doc builtin [builtinFunName]查看go语言内置函数。
全栈工程师修炼指南
2022/09/29
1.1K0
1.Go语言之标准库学习记录(1)
Golang之文件读写
读写文件,不添加文件路径,默认写入到GOPATH路径下 终端读写: 源码 func Sscanf func Sscanf(str string, format string, a ...interface{}) (n int, err error) 解释:Sscanf scans the argument string, storing successive space-separated values into successive arguments as determined by the form
超蛋lhy
2018/08/31
1.2K0
Golang之文件读写
Golang开发命令行工具之flag包的使用
日常命令行操作,相对应的众多命令行工具是提高生产力的必备工具,我在之前的文章我的生产力工具推荐-终端01篇中有推荐过一些我常用的基于terminal终端的命令行cli工具
仙人技术
2021/10/13
8920
Go语言核心36讲(Go语言实战与应用一)--学习笔记
在接下来的日子里,我将带你去学习在 Go 语言编程进阶的道路上,必须掌握的附加知识,比如:Go 程序测试、程序监测,以及 Go 语言标准库中各种常用代码包的正确用法。
郑子铭
2021/11/11
6260
Go语言核心36讲(Go语言实战与应用一)--学习笔记
Go语言核心36讲(Go语言基础知识三)--学习笔记
在我的定义中,库源码文件是不能被直接运行的源码文件,它仅用于存放程序实体,这些程序实体可以被其他代码使用(只要遵从 Go 语言规范的话)。
郑子铭
2021/10/14
5610
Go语言核心36讲(Go语言基础知识三)--学习笔记
GoLang读写数据---中
注意 defer 的使用:当打开dst文件时发生了错误,那么 defer 仍然能够确保 src.Close() 执行。如果不这么做,src文件会一直保持打开状态并占用资源。
大忽悠爱学习
2022/08/23
4030
GoLang读写数据---中
使用 AI 辅助开发一个开源 IP 信息查询工具:二
在上一篇文章《使用 AI 辅助开发一个开源 IP 信息查询工具:一[1]》中,我们已经将初版代码推送到了开源项目 soulteary/ip-helper[2]。
soulteary
2024/12/23
1620
使用 AI 辅助开发一个开源 IP 信息查询工具:二
推荐阅读
相关推荐
Go语言核心36讲(Go语言基础知识二)--学习笔记
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档