1.不使用函数实现字符串的翻转
/**
* 1.不使用函数实现字符串的翻转
*/
public class TestStringReverse {
public static void main(String[] args) {
String s1 = "FEDCBA";
System.out.println("翻转前:"+s1);
/**
* 此处需注意用s1接收方法的返回值,不然输出的还是没翻转之前的s1
*/
s1 = reverseI(s1);
System.out.println("方法I翻转后:"+s1);
s1 = reverseII(reverseII(s1));
System.out.println("方法II翻转后:"+s1);
} /**
* 方法I
*/
public static String reverseI(String str){
/**
* 实现思路:将字符串存入一个字符数组中,首尾交换,每交换一次起始位置+1,结束位置-1
* 调用toCharArray()方法,返回一个字符数组,方便通过下标取放字符,最终实现字符串的翻转
*/
char[] ch = str.toCharArray();
/**
* 定义起始和结束位置下标索引号
*/
int start = 0;
int end = ch.length - 1;
char temp;
while (start < end){
temp = ch[start];
ch[start] = ch[end];
ch[end] = temp;
start++;
end--;
}
/**
* public String(char value[]) 此方法实现传入一个字符数组,返回一个字符串
*/
String str0 = new String(ch);
return str0;
} /**
* 方法II
*/
public static String reverseII(String str){
/**
* 调用toCharArray()方法,返回一个字符数组,方便通过下标取放字符,最终实现字符串的翻转
*/
char[] ch = str.toCharArray();
/**
* 定义一个空字符串
*/
String str0 = "";
for (int i = 0; i < ch.length; i++) {
/**
* 此法 str0 = temp + str0 中temp和str0的顺序是不能调换的,这是关键
*/
char temp = ch[i];
str0 = temp + str0;
}
return str0;
}
}

运行结果:

2.给定一个字符串,如"yekmaakkccekymbvb",求字符串中有多少种字符以及每个字符的个数;把结果写入E盘名为TestIOStream.txt的文本文件中;读出刚才写入TestIOStream.txt文本文件的内容。

public class TestIOStream {
public static void main(String[] args) {
String str = "yekmaakkccekymbvb";
Map<String,Integer> map = count(str);
write(map);
read();
}
/**
* 求字符串中有多少种字符及每个字符的个数
*/
public static Map<String,Integer> count(String s){
Map<String,Integer> map = new LinkedHashMap<String,Integer>();
for (int i = 0;i < s.length();i++){
/**
* public String substring(int beginIndex, int endIndex) 截取字符串中的子串
* (前闭后开)
* substring(i,i + 1)每次截取一个字符
* 定义一个key接收返回的子串
*/
String key = s.substring(i,i + 1);
/**
* 定一个整型value接收map.get(key)返回的值
*/
Integer value = map.get(key);
/**
* 判断value若为空,即
*/
if (value == null){
map.put(key,1);
}else {
map.put(key,value+1);
}
}
return map;
}
/**
* 把结果写入E盘名为TestIOStream.txt的文件夹中
*/
public static void write(Map<String,Integer> map){
PrintWriter pw = null;
try {
pw = new PrintWriter("e:/TestIOStream.txt");
pw.println("size:"+map.size());
Set<Map.Entry<String,Integer>> entrySet = map.entrySet();
for (Map.Entry entry : entrySet){
pw.println(entry.getKey()+":"+entry.getValue());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {
pw.close();
}
}
/**
* 读出刚才写入的文本文件的内容
*/
public static void read(){
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("e:/TestIOStream.txt"));
String str = null;
do {
str = br.readLine();
System.out.println(str);
}while (str != null);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

运行结果:

3.使用冒泡排序对一个int数组进行排序。

public class TestBubbleSort {
public static void main(String[] args) {
int [] arr = {9,7,6,4,3,1,0};
//int [] arr = {1,2,3,4,5,6,7};
System.out.println("排序前:"+Arrays.toString(arr));
bubbleSort(arr);
System.out.println("排序后:"+Arrays.toString(arr));
}
public static void bubbleSort(int [] arr){
for (int i = 0;i < arr.length - 1;i++){
boolean flag = false;
for (int j = 0;j < arr.length - 1 - i;j++){
if (arr[j] > arr[j + 1]){
int temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
flag = true;
}
}
if (!flag){
break;
}
}
}
}

运行结果:

JavaSE编码试题强化练习5的更多相关文章

  1. JavaSE编码试题强化练习1

    1. 编写应用程序,创建类的对象,分别设置圆的半径.圆柱体的高,计算并分别显示圆半径.圆面积.圆周长,圆柱体的体积. /** * 定义父类--圆类 */ public class Circle { / ...

  2. JavaSE编码试题强化练习7

    1.编写应用程序,创建类的对象,分别设置圆的半径.圆柱体的高,计算并分别显示圆半径.圆面积.圆周长,圆柱体的体积. /** * 圆类 */ public class Circle { /** * 类属 ...

  3. JavaSE编码试题强化练习6

    1.写出选择排序的代码实现,对一个int数组进行排序 public class TestSelectSort { public static void main(String[] args) { in ...

  4. JavaSE编码试题强化练习4

    1.编写一个Worker类,为Worker类添加相应的代码,使得Worker对象能正确放入TreeSet中.并编写相应的测试代码. /** * Worker类 */ public class Work ...

  5. JavaSE编码试题强化练习3

    1.给20块钱买可乐,每瓶可乐3块钱,喝完之后退瓶子可以换回1块钱,问最多可以喝到多少瓶可乐. public class TestCirculation { public static void ma ...

  6. JavaSE编码试题强化练习2

    1.编写递归算法程序:一列数的规则如下: 0.1.1.2.3.5.8.13.21.34...... 求数列的第40位数是多少. public class TestRecursion { public ...

  7. JavaSE面试题

    JavaSE面试题 欢迎到我的Git仓库去提交您觉得优秀的内容! 1.是否可以从一个static方法内部发出对非static方法的调用? 不可以.当一个static方法被调用时,可能还没有创建任何实例 ...

  8. [002] - JavaSE面试题(二):基本数据类型与访问修饰符

    第一期:Java面试 - 100题,梳理各大网站优秀面试题.大家可以跟着我一起来刷刷Java理论知识 [002] - JavaSE面试题(二):基本数据类型与访问修饰符 第1问:Java的数据类型有哪 ...

  9. JavaSE 面试题: 类初始化和实例初始化等

    JavaSE 面试题 类初始化和实例初始化等 class Father { private int i = test(); private static int j = method(); stati ...

随机推荐

  1. PAT Advanced 1077 Kuchiguse (20 分)

    The Japanese language is notorious for its sentence ending particles. Personal preference of such pa ...

  2. dos2unix 将DOS格式转换成NUIX格式

    1.命令功能 dos2unix将windows文件格式转换成unix文件格式. 2.语法格式 dos2unix  file 3.使用范例 [root@localhost ~]# dos2unix wi ...

  3. 代理层Nginx限流(降级)预案

    典型服务架构介绍 预案适用场景 监控指标 操作手册 相关文档 操作方法 配置语法 配置样例 配置解释 注意事项 典型服务架构介绍 典型的互联网服务访问链路都是分层结构的,从流量入口,到应用层,到后端资 ...

  4. 算法竞赛进阶指南 0x00 基本算法

    放在原来这个地方不太方便,影响阅读体验.为了读者能更好的刷题,另起一篇随笔. 0x00 基本算法 0x01 位运算 [题目][64位整数乘法] 知识点:快速幂思想的灵活运用 [题目][最短Hamilt ...

  5. SpringBoot整合redis把用户登录信息存入redis

    首先引入redis的jai包 <dependency> <groupId>org.springframework.boot</groupId> <artifa ...

  6. Are We Ready for SDN? Implementation Challenges for Software-Defined Networks

    Name of article:Are We Ready for SDN?  Implementation Challenges for  Software-Defined Networks Orig ...

  7. plt.imshow()为什么不能显示同时显两张照片

    在编程的过程中发现plt.imshow()不能同时显示两张照片,如果有两条plt.imshow()语句处于一前一后的位置,那么程序运行后只会显示后面的图片.如果想让每一张图片都显示出来,需要在每一个p ...

  8. [IOI2008] Fish 鱼

    https://www.luogu.org/recordnew/lists?uid=56840 题解 首先可以发现我们对于每种颜色的鱼,长一点的能够覆盖的方案已定完全包含短一点的方案. 所以我们可以只 ...

  9. 2017ICPC南宁补题

    https://www.cnblogs.com/2462478392Lee/p/11650548.html https://www.cnblogs.com/2462478392Lee/p/116501 ...

  10. UVALive 3958 Weird Numbers (负进制数)

    Weird Numbers 题目链接: http://acm.hust.edu.cn/vjudge/contest/129733#problem/F Description Binary number ...