如何对字符串进行替换以使“(”变为“)”和“)”成为“(”?

使用.replace(),但如果你替换)(然后(和)你将最终得到所有)是很诱人的.相反,迭代字符串并使用stringbuilder来构建字符串.

String swapParens(String s) {

StringBuilder sb = new StringBuilder();

sb.ensureCapacity(s.length()); // preallocate to prevent resizing

for(int i = 0; i < s.length(); i++) {

char c = s.charAt(i);

switch(c) {

case ')': sb.append('('); break;

case '(': sb.append(')'); break;

default: sb.append(c);

}

}

return sb.toString();

}

我知道你可以把一些东西放在那里作为占位符进行交换,但是如果它已经存在于你的字符串中,你就会遇到大问题.

考虑使用“xxx”作为交换字符串.如果你的字符串是“abcx(yz)”,你替换(用xxx,你最终得到“abcxxxyz)”然后你替换)(所以你有“abcxxxxyz(”.然后你替换xxx)所以你有“ abc)xyz(“.当然不酷!

java 圆括号,Java圆括号翻转字符串相关推荐

  1. Java 翻转字符串 将字符串逆序

    问题描述:给定一个字符串,返回字符串翻转后的字符串. 解法一:利用Java中的StringBuffer类提供的reverse()方法实现. 代码如下: import java.util.*;publi ...

  2. [剑指offer]面试题第[58]题[Leetcode][JAVA][第151题][翻转单词][字符串常用函数总结]

    [问题描述] 给定一个字符串,逐个翻转字符串中的每个单词.示例 1: 输入: "the sky is blue" 输出: "blue is sky the" [ ...

  3. 算法--------翻转字符串里的单词(Java版本)

    题目: 给定一个字符串,逐个翻转字符串中的每个单词.示例 1:输入: "the sky is blue" 输出: "blue is sky the" 示例 2: ...

  4. Java教程:Java字符串拼接(连接)

    Java教程对于已经定义的字符串,可以对其进行各种操作.连接多个字符串是字符串操作中最简单的一种.通过字符串连接,可以将两个或多个字符串.字符.整数和浮点数等类型的数据连成一个更大的字符串. 本篇文章 ...

  5. java自学——java的基本讲解和变量、字符串、运算符的简单介绍

    java自学--java的基本讲解和变量.数组.字符串.运算符的简单介绍 hello world程序 java程序的结构 java语句的组成介绍 关键字 标识符 标识符的命名规则 分隔符 注释符 空白 ...

  6. java中井号字符串_深入Java基础(二)——字符串

    这段时间在准备找一份java实习工作,所以来把基础知识整理归纳一下 文章结构: 1.equals和== 2.字符串的基本知识以及字符串的源码解读: 3.字符串的注意点以及使用推荐: 一.equals和 ...

  7. 深入Java基础(二)——字符串家族

    上一篇写了基本数据类及其包装类详解,这篇我们就来讨字符串这个家族吧,这个也是重中之重啊!!! 文章结构: 1.众说纷纷的equals和==: 2.字符串家族的基本知识以及字符串家族的源码解读: 3.字 ...

  8. 使用java中replaceAll方法替换字符串中的反斜杠

    今天在项目中使用java中replaceAll方法将字符串中的反斜杠("\")替换成空字符串(""),结果出现如下的异常: 1 java.util.regex. ...

  9. java 嵌套对象转xml_Gson对Java嵌套对象和JSON字符串之间的转换 | 学步园

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性.近几年来已经和XML一样成为C/S架构中广泛采用的数据格式.有关JSON的更多知识, ...

  10. java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法...

    1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...

最新文章

  1. STM32定时器学习---基本定时器
  2. python变量的创建过程(内存地址变化)
  3. C语言 函数递归例题解析
  4. 计算机科学与技术教师简介,清华大学计算机科学与技术系导师教师师资介绍简介-赵 颖...
  5. idea引入本地jar包及打包
  6. 微软原版 windows server 2003 sp2 R2 系列下载分享
  7. 三个瓶盖能换一瓶水,问100个人需要喝水,最少需要买多少瓶水即可解决100人的喝水问题
  8. fortran 教程
  9. codebook算法原理
  10. android 8.0 无法接受到静态广播
  11. mysql误删除数据恢复_mysql误删除数据恢复
  12. pyinstaller编译报错 IsADirectoryError: [Errno 21] Is a directory
  13. 论文笔记 EMNLP 2018|Jointly Multiple Events Extraction via Attention-based Graph Information Aggregation
  14. 二清资金监管户账务处理实例
  15. 苹果手机性能测试用是么软件,怎么检测iPhone手机性能
  16. 华三H3C交换机如何配置堆叠irf虚拟化之如何配置检测机制(配置BFD MAD检测)
  17. 鸿蒙系统和安卓的区别在哪里,有什么不同
  18. HTML5编写的小游戏
  19. python元组拆包
  20. css网格_CSS网格的逐步增强

热门文章

  1. SharePoint Web Service系列: Add或Update其他各种类型的项
  2. shell脚本——释放缓存
  3. Linux中的sed命令,使用方法之一「替换字符串中的内容 」,以及「s/ / / 」和「s/ / /g」之间的区别
  4. 使用ping -a 无法得到 主机名字 hostnames 相关信息的原因
  5. どんな時、自分が幸福だと思いますか?
  6. 网络管理与维护作业4
  7. Ubuntu 16.04下用Wine运行的软件出现方块的解决思路(应该是兼容现在所有平台的Wine碰到这个的问题)
  8. SpringBoot 解决“不支持发行版本xx”的问题
  9. Hystrix-异常处理
  10. 虚拟机ubuntu 网速慢的解决方法