我有一个字符串,想要反转它,以便某些字符反转,而其他字符保留在原位。我该如何实现(例如,假设所有数字都留在原处时我希望所有字母都颠倒过来)?

参考方案

您可以为其创建一个自动机:

遍历字符串,将每个字母插入堆栈,并用原始字符串(即$)中没有的特殊字符替换,根本不更改数字。

再次遍历字符串,将每个$替换为堆栈的头部。

注意:由于String是不可变的,因此您首先需要将其导出到StringBuilder或CharSequence

编辑

例如:

String inp = "a45string1test";

char[] cs = new char[inp.length()];

inp.getChars(0, inp.length(), cs, 0);

Stack stack = new Stack();

for (int i =0;i

if (Character.isDigit(cs[i])) continue;

stack.push(cs[i]);

cs[i] = '$';

}

for (int i=0;i

if (cs[i] == '$') cs[i] = stack.pop();

}

System.out.println(cs);

结果将是t45setgni1rtsa

复杂度为O(n):重复两次字符串-因为所有堆栈操作均为O(1)。

Java:找到特定字符并获取子字符串 - java

我有一个字符串4.9.14_05_29_16_21,我只需要获取4.9。数字各不相同,所以我不能简单地获得此char数组的前三个元素。我必须找到最正确的.并将其子字符串化直到那里。我来自Python,因此我将展示Python的实现方法。def foobar(some_string): location = some_string.rfind('.&…java:继承 - java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…Java:BigInteger,如何通过OutputStream编写它 - java

我想将BigInteger写入文件。做这个的最好方式是什么。当然,我想从输入流中读取(使用程序,而不是人工)。我必须使用ObjectOutputStream还是有更好的方法?目的是使用尽可能少的字节。谢谢马丁 参考方案 Java序列化(ObjectOutputStream / ObjectInputStream)是将对象序列化为八位字节序列的一种通用方法。但…Java-如何将此字符串转换为日期? - java

我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…Java:从类中查找项目名称 - java

仅通过类的实例,如何使用Java反射或类似方法查找项目名称?如果不是,项目名称(我真正想要的是)可以找到程序包名称吗? 参考方案 项目只是IDE使用的简单组织工具,因此项目名称不是类或JVM中包含的信息。要获取软件包,请使用Class#getPackage()。然后,可以调用Package#getName()将包作为您在代码的包声明中看到的String来获取…

java保留想要的字符,反转Java中的字符,同时保留一些字符 - java相关推荐

  1. java 实现打印条形码_条码打印软件中如何设置条形码下面的字符间距?

    条形码有两部分组成,上面是黑白条图案,用于扫描设备的识别,下面是条形码数据,方便在没有扫描设备的情况下可以手动去搜索相关的信息.一般用条码打印软件制作条形码,下面的条形码数据间距是自动生成的,而在条码 ...

  2. java在W n8安装_在windows中安装JDK8并配置环境变量-java环境变量设置

    学习JAVA,必须得安装一下JDK(Java development kit java开发工具包),配置一下环境就可以学习JAVA了,下面是下载和安装JDK的教程: 一.去oracle官网上下载jdk ...

  3. java 判断非ascii字符_文件名中的JavaMail和非ASCII字符

    我可以在 JavaMail中发送具有非ascii文件名的附件,但我无法下载它们.我特意为那些文件名包含非ascii字符的附件获取java.io.FileNotFoundException. 仅供参考: ...

  4. java打包后发布找不到jsp_eclipse中web项目部署以后jsp的java文件找不到问题(Tomcat配置serverlocations)...

    我的开发环境:eclipse kepler (4.3)+tomcat7.0.42. 在我想看eclipse中web项目jsp文件被tomcat转换成java以后的java源文件的位置,发现正常情况下的 ...

  5. 力扣—— 19. 删除链表的倒数第 N 个结点(java)、剑指 Offer 22. 链表中倒数第k个节点(java)

    19. 删除链表的倒数第 N 个结点(java) 一.题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 输入:head = [1,2,3 ...

  6. ie浏览器java 脚本下载_如何设置ie浏览器中的activex控件和插件java脚本下载用户验证...

    ActiveX是Microsoft提出的一组使用COM(ComponentObjectModel,部件对象模型)使得软件部件在网络环境中进行交互的技术集.它与具体的编程语言无关.作为针对Interne ...

  7. 以下()不是python的数值运算操作符_Python学习(三)——Python的运算符和数值、字符的类中方法...

    Python开发IDE PyCharm,eclipse PyCharm的基础用法 全部选中后 Ctrl+?全部变为注释 运算符 结果为值的运算符 算术运算符: + - * / % // ** 赋值运算 ...

  8. 字符在计算机中的存储

    在计算机中提供给用户最常见的显示就是字符,也称之为文本,字符的种类非常多,每种语言都有自己的字符集,那么,这么多的字符,如何存储进计算机中呢? 本文为你揭晓英文字符.中文字符.以及全世界所有字符在计算 ...

  9. 【C#进阶二】C#中的正则表达式知识总结(字符转义/字符类/ 定位点/ 分组构造 /数量词/反向引用构造/替换构造/替代/正则表达式选项)(理论篇)

    文章目录 0. 正则表达式网站推荐 1.字符转义 2.字符类 3. 定位点 4. 分组构造 5.数量词 6.反向引用构造 7.替换构造 8.替代 9.正则表达式选项 正则表达式是对字符串操作的一种逻辑 ...

最新文章

  1. java jar包命令行下可以双击不运行解决方法(改变java默认图标)
  2. [architecture]-CPU(ARM)启动的第一条指令
  3. 解析Vue.js中的computed工作原理
  4. SAP UI5 框架画Button的入口
  5. java正则 找出数字_Java使用正则表达式实现找出数字功能示例
  6. 适用于Apache Hadoop 2.0 M5的Spring
  7. 张勇:新技术是阿里“五新战略”的引擎
  8. 音视频学习之 - H264解码
  9. Asp.net主题(theme)和皮肤(skin)的使用
  10. 深度学习之基础知识详解
  11. CV学习笔记-边缘提取
  12. activity和service之间的相互通信方法
  13. MOEA/D算法原理及应用方向
  14. 操作系统虚拟内存的作用概括
  15. CRM客户管理系统源码PHP开发搭建
  16. 【资讯】1225- Flutter 2.10发布,稳定支持Windows
  17. SmartUplod中文乱码问题(已解决)
  18. 利用2阶分数阶微分掩模的边缘检测(Matlab代码实现)
  19. word使用技巧-批量删除图片技巧
  20. 类和对象常见题目详解

热门文章

  1. centos8 配置 dns_广电行业DNS、DHCP案例详解
  2. ios 后台唤醒应用_IOS开发之----详解在IOS后台执行
  3. win32api.sendmessage模拟鼠标点击_安卓模拟器一键宏设置教程
  4. Linux socket / 端口复用
  5. C/Cpp / static 关键字
  6. 启明云端分享|一组图带你快速了解乐鑫ESP MCU系列产品
  7. 9个元素换6次达到排序序列_十大算法排序(Sorting Algorithm) Study notes
  8. word中链接到目标后返回快捷键
  9. Altium designer快捷键汇总
  10. java复制类mytool_MyTools