java实现字符串翻转
public class StringReverse {
/*一共写了三个函数func1 func2 func3
* 时间: 2019年9月12日9:00
* func1用的反向输出到一个新的字符串中进行拼接
* func2第一个和最后一个字符交换,第二个和倒数第二个字符进行交换,依次类推实现翻转
* func3用递归函数进行翻转。递归在初学者中比较难理解,可以一步步的拆开,手动运行代码,进行理解。
* func4也是递归函数,但是比func3写的更加漂亮
* 为什么函数用static?静态函数不用new直接调用就行,这叫做类函数
* */
public static void main(String[] args) {
// TODO Auto-generated method stub
String string1 = "my name is hailey";
//func1(string1);
//func2(string1);
//func3(string1, 0);//如果调用func1 就把该行注释,把func1这一行调用注释去掉就行
System.out.println(func4(string1));
}
static void func1(String string1){//反向输出
String string2 = "";
for(int i = string1.length()-1; i >=0 ; --i) {//倒着读取每个字符。然后拼接
string2+=string1.charAt(i);
}
System.out.println(string2);
}
static void func2(String s){//第一个字符和最后一个互换,第二个和倒数第二个互换,,依次类推,实现翻转
char []ss = s.toCharArray();//将string类型转化为char数组类型
char sss; //暂存空间
for(int i = 0,j = s.length()-1; i <j; i++,j--){
sss = ss[i];
ss[i] = ss[j];
ss[j] = sss; //典型的两个数值交换(需要第三个空间)
}
for(int i = 0; i < ss.length; i++){
System.out.print(ss[i]);
}
}
static void func3(String s, int position){//初始化position为0 递归函数实现翻转。
if(position < s.length()){//这里可以去看看堆栈,就是类似堆栈先进后出(LIFO)
func3(s, ++position);//队列是先进先出(FIFO)
System.out.print(s.charAt(--position));//这里为什么要--,因为position上一行++进入下一个递归,但是我要打印当前的一个字符
//所以必须--一下就会正常,不然的话第一个字符会不显示,最后会多显示一个字符造成数组溢出
//可以删掉--试试。
}
}
static String func4(String s){
if(s.isEmpty()) return s;
return func4(s.substring(1))+s.charAt(0);
}
}
java实现字符串翻转的更多相关文章
- 【Java笔试】OYO校招Java工程师|牛客平台,算法:字符串翻转。附选择题解析
文章目录 1.Java笔试算法题:字符串翻转 2.单选题: 2.1.同一进程下的多个线程可以共享哪一种资源:data section 2.2.一个树形的叶结点在前序遍历和后序遍历下,可以相同的相对位置 ...
- Java常量字符串String理解
Java常量字符串String理解 以前关于String的理解仅限于三点:1.String 是final类,不可继承2.String 类比较字符串相等时时不能用“ == ”,只能用 "eq ...
- Java String字符串/==和equals区别,str。toCharAt(),getBytes,indexOf过滤存在字符,trim()/String与StringBuffer多线程安全/StringBuilder单线程—— 14.0
课程概要 String 字符串 String字符串常用方法 StringBuffer StringBuilder String字符串: 1.实例化String对象 直接赋值 String str=& ...
- java截取字符串中的数字
java从字符串中提取数字 随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取 ...
- 三张图彻底了解Java中字符串的不变性
转载: 三张图彻底了解Java中字符串的不变性 定义一个字符串 String s = "abcd"; s中保存了string对象的引用.下面的箭头可以理解为"存储他的引用 ...
- java中字符串的非空判断
问题如下:在java 中 字符串为null 如何判断String str;if(str==null) ??str.equal("null") ?? 答:我觉得应该搞清楚字符串对象和 ...
- java中字符串String 转 int(转)
java中字符串String 转 int String -> int s="12345"; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法 ...
- Java:字符串类String的功能介绍
在java中,字符串是一个比较常用的类,因为代码中基本上处理的很多数据都是字符串类型的,因此,掌握字符串类的具体用法显得很重要了. 它的主要功能有如下几种:获取.判断.转换.替换.切割.字串的获取.大 ...
- Java空字符串与null的区别和判断字符串是否为空的方法
Java空字符串与null的区别: 1.类型null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也 ...
随机推荐
- axure公式的使用和局部变量简介
什么时候有公式?当前面是值的时候后面都可以用公式 公式怎么用?1.公式里直接写入字符串 2.变量([变量])加上字符串 3.[[]]里面运算 外面字符串 两个中括号里的变量就可以计算或者显示默认值而不 ...
- DataTable转成实体列表 和 DataRow转成实体类
#region DataTale转为实体列表 /// <summary> /// DataTale转为实体列表 /// </summary> /// <typeparam ...
- Java中的选择结构
1.if选择结构 if选择结构是根据条件判断之后再做处理的一种语法结构 语法: if(条件){ 代码块 //条件成立之后要执行的代码,可以是一条语句,也可以是一组语句 } if后小括号里的条件是一个表 ...
- 如何修改eclipse中Dynamic web module的 version
我们直接在eclipse中修改Dynamic Web Module的话会报错,改不了的 所以我们可以找到项目文件中的.setting文件下的org.eclipse.wst.common.project ...
- 再见,Python2。你好,Python3
文章首发自我的公众号,转载请注明出处~ Python2的退场,意味着一个时代的结束 我们这一代程序员基本都接触过python2,很多人也是从python2时代一路走来的.但是,是时候说再见了 ...
- IE框架表单遍历
// HtmlWeb.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <atlbase.h> #include ...
- jenkins+ant+jmeter自动化环境搭建
jmeter:测试接口的工具,支持java语言: ant:Apache Ant是一个Java库和命令行工具,其任务是将构建文件中描述的进程作为相互依赖的目标和扩展点.只要使用过Linux系统的读者,应 ...
- Java后台创建Socket服务接收硬件终端发送的数据
最近项目中有遇到后台接收硬件终端发送的数据并解析存储的需求,代码总结如下(有时间再来一一讲解,最近比较忙): @Override public void start() { ExecutorServi ...
- C++简单项目--贪吃蛇
在800*600的地图上,蛇的初始长度为3节,用数组记录每一节的位置(每个正方形左上角的坐标),每一节为长度为10的正方形,初始方向向右.随机生成30个障碍物的的位置,随机生成食物的位置.吃到食物之后 ...
- Java工程师阅读源码的一些见解
一.为何阅读源码 就是说,通过阅读源码能给你带来什么好处. 学习如何从需求-设计-实现,开阔你的思维,提升你的架构设计能力: 帮助更好地理解原理和架构设计: 帮助更快地定位线上问题BUG 可以根据自己 ...