由于研究了关于字符串(String)的问题,今年就在这里总结一下,首先说一下有关于面试,我想的是,需要一定的技能,比方说,大家想到这个反转问题,肯定能说上了,只不过是你说的一般人都知道,要想在面试中更胜一筹,就必须比别人更多知道一点,更多地还是我们的积累,而不单单为了面试,好了,不说这些废话了,只有征服自己,才是更大的赢家。。。

直奔主题,说一下关于在别人问到这个问题的时候,该如何去回答,我们需要一点一点就说,这样子会感觉到我们更有条理,也不会更早的忘记。。。

从简单的开始(就是从简单的一句话开始)

注:old 为字符串变量

 //return new StringBuffer(old).reverse().toString();
//return new StringBuilder(old).reverse().toString();

再来一个大气点的

我们要想到Collections类中有两个重要的方法,(sort()与reverse());而reverser()参数是集合,这个时候就需要转化为集合,代码如下:

        String result = "";
List<String> olds = Arrays.asList(old.split(""));
Collections.reverse(olds);
for (String s : olds) {
result += s;
}
return result;

然后再说一下关于charAt() 的用法:返回指定索引处的 char 值。

    利用下标倒序把字符取出来重组
        String result = "";
for (int i = old.length() - 1; i >= 0; i--) {
result += String.valueOf(old.charAt(i));
}
return result;
    这种方法是将先取出来的放在后取出来的后面
        String result = "";
for (int i = 0; i < old.length(); i++) {
result = old.charAt(i) + result;
}
return result;

再说一下关于toCharArray()的用法:该方法的作用是返回一个字符数组,该字符数组中存放了当前字符串中的所有字符

利用栈,就是传说中的先进后出,如果不清楚,查看API即可,里面有:

Stack() 创建一个空堆栈。

empty() 测试堆栈是否为空;

push(E item) 把项压入堆栈顶部;

pop() 移除堆栈顶部的对象,并作为此函数的值返回该对象。

Character类为char的封装类

        char[] chars = old.toCharArray();
Stack<Character> oldStack = new Stack<Character>();
for (Character c : chars) {
oldStack.push(c);
}
String result = "";
while (!oldStack.empty()) {
result += oldStack.pop();
}
return result;
来点刺激一点的,就是你的重点。。。要想说清楚就需要使用奇数偶数来测试 等等。。。
        char[] chars = old.toCharArray();
int n = chars.length - 1;
for (int i = 0; i <= n / 2; i++) {
char temp = chars[i];
chars[i] = chars[n - i];
chars[n - i] = temp;
}
return new String(chars);

如果再有方法,我会即使更新!!!

java基础——字符串中的反转Reverse问题(面试必备)的更多相关文章

  1. Java基础-字符串(String)常用方法

    Java基础-字符串(String)常用方法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.java的API概念 Java的API(API:Application(应用) Pr ...

  2. Java求字符串中出现次数最多的字符

    Java求字符串中出现次数最多的字符  [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51933611      Java ...

  3. Java基础(中)

    面向对象基础 面向对象和面向过程的区别 两者的主要区别在于解决问题的方式不同: 面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题. 面向对象会先抽象出对象,然后用对象执行方法的方式 ...

  4. java截取字符串中的数字

    java从字符串中提取数字 随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取 ...

  5. Java基础学习中一些词语和语句的使用

    在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...

  6. 三种java 去掉字符串中的重复字符函数

    三种java 去掉字符串中的重复字符函数 public static void main(string[] args) { system.out.println(removerepeatedchar( ...

  7. java 判断字符串中是否包含中文并过滤掉中文

      java判断字符串中是否包含中文并过滤掉中文 CreateTime--2017年9月6日08:48:59 Author:Marydon 1.判断字符串中是否包含中文方法封装 /** * 判断字符串 ...

  8. Java基础-字符串连接运算符String link operator

    Java基础-字符串连接运算符String link operator 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 字符串链接运算符是通过“+”进行拼接的. 一.使用“+”进行字 ...

  9. 使用 Java 查找字符串中出现次数最多的字符以及出现的次数?

    使用 Java 查找字符串中出现次数最多的字符以及出现的次数? import java.util.HashMap; import java.util.Map; public class TestStr ...

随机推荐

  1. 转:为什么根据IP地址查询物理所在地,而不是mac地址?

    来自 https://mp.weixin.qq.com/s/aOZQGMnMI2nkX4-qcJL4WQ 读者 不是说mac地址是计算机网卡唯一的地址吗?这样不是可以直接定位到某一台机器吗?为什么要用 ...

  2. vue v-if控制显隐,页面加载出现闪现 v-cloak

    <div id="divApp"> <div v-if="type === 'A'" v-cloak> A </div> & ...

  3. angular6 input节流

    一直以为   pipe(debounceTime(1000), distinctUntilChanged())  不起作用 原因:使用方法错误 <input type="text&qu ...

  4. mysql源码版安装

    mysql源码版安装 创建配置文件 创建 my.ini,注意修改,如下的 设置mysql的安装目录和设置mysql数据库的数据的存放目录,设置自己本机的上的对应路径 [mysql] # 设置mysql ...

  5. 跟随我在oracle学习php(18)

    修改表: 一般概述 通常,创建一个表,能搞定(做到)的事情,修改表也能做到.大体来说,就可以做到: 增删改字段: 增:alter  table  表名  add  [column]  字段名  字段类 ...

  6. Spring MVC扩展

    使用@ResonseBody实现异步请求时返回的数据对象的输出. 通过配置StringHttpMessageConverter消息转换器来解决JSON数据传递中出现的中文乱码问题. 在实际项目开发中, ...

  7. webbench安装使用

    简介 运行在linux上的一个性能测试工具 官网地址:http://home.tiscali.cz/~cz210552/webbench.html 如果不能打开的话,也可以直接到网盘下载:http:/ ...

  8. 正则表达式中的re.S

    正则表达式中,“.”的作用是匹配除“\n”以外的任何字符,也就是说,它是在一行中进行匹配.这里的“行”是以“\n”进行区分的.a字符串有每行的末尾有一个“\n”,不过它不可见. 如果不使用re.S参数 ...

  9. Unity资源内存管理--webstream控制

    一 使用前提 1,需要使用资源热更新 2,使用Assetbundle资源热更(AssetBundle是产生webstream的元凶) 二 为什么要用AssetBundle AssetBundle本质上 ...

  10. java IO性能对比----read文件

    本次对比内容为:(jdk1.8) fileInputStream:最基本的文件读取(带自己声明的缓冲区) dataInputStream:字节读取,在<java编程思想>一书中描述为使用最 ...