Java上机试题1
1. 有一串字符串String s = "ababab", 这个字符串可以看做由3个"ab"构成,即n=3, L = "ab", s = nL. 现在要求编写一段程序,使用单例模式,输入任意字符串s,输出nL. 如输入: aaaaa 输出 5a ,输入: ababa 输出: 1ababa
解题的有两个关键,一个是单例模式如何实现(创建一个对象,让构造函数为 private,这样该类就不会被实例化,再获取唯一可用对象 ),一个是对spring对象的方法有一个比较清楚的了解,比如:
Sting s = "aaaaaaa";
String[] strings = spring.split("a");
此时strings数组是空的(因为都是分隔符). 这一特点恰好可以利用起来作为判断 L的依据.
先用单例模式编写方法类
package com.ryan;
import org.apache.commons.lang3.StringUtils;
public class Tool {
//创建一个对象
private static Tool tool; //让构造函数为 private,这样该类就不会被实例化
private Tool(){} //获取唯一可用对象
public static Tool getTool() {
if (tool == null) {
tool = new Tool();
}
return tool;
} //编写用来解题的方法
public static String compress(String s){
String result = "";
if (StringUtils.isBlank(s)){
result ="你输入为空!";
}else if (s.contains(" ")){
result ="请不要输入空格!";
}else {
int length = s.length();
System.out.println("length: "+length);
int count = 0;
for (int i= 1;i<=length;i++){
String[] strings1 = s.split(s.substring(0,i));
if (strings1.length==0){
System.out.println("切分到"+i);
count = i;
break;
}
}
result = length/count + s.substring(0,count);
}
return result;
}
}
再编写主类
package com.ryan;
public class Test1 {
public static void main(String[] args) {
String s = "aaaaaa";
String result = "";
Tool tool = Tool.getTool();
result = tool.compress(s);
System.out.println(result);
}
}
大功告成.
Java上机试题1的更多相关文章
- java面试题及答案(转载)
JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...
- 115个Java面试题和答案——终极列表(下)
第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servle ...
- Java面试题(全)
JAVA部分 什么是反射机制?反射机制应用(Struts中反射机制的应用) 答:运行状态中,对于任意一个类,都可以知道它的所有属性和方法,对于任意一个对象都可以调用它的任意一个方法,这种动态获取信息以 ...
- Java面试题大全(四)
JAVA代码查错 1. abstract class Name { private String name; public abstract boolean isStupidName(String n ...
- 大公司的Java面试题集
找工作要面试,有面试就有对付面试的办法.以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司. 面试 ...
- 收集了50道基础的java面试题
下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...
- Java笔试题解答和部分面试题
面试类 银行类的问题 问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的.比如,你 ...
- 转:Java面试题集(51-70) http://blog.csdn.net/jackfrued/article/details/17403101
Java面试题集(51-70) Java程序员面试题集(51-70) http://blog.csdn.net/jackfrued/article/details/17403101 摘要:这一部分主要 ...
- JAVA面试题集之基础知识
JAVA面试题集之基础知识 基础知识: 1.C 或Java中的异常处理机制的简单原理和应用. 当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就 ...
随机推荐
- attr()与prop()之全选、反选问题
获取js dom原生属性的时候最好用prop()方法,获取自己添加的属性时用attr() 原文:http://blog.sina.com.cn/s/blog_bf5ce8cc0102vuyt.html ...
- vue项目创建
使用命令行工具npm新创建一个vue项目 使用vue开发项目的前期工作可以参考前面写的: Vue环境搭建及node安装过程整理 Vue.js 提供一个官方命令行工具,可用于快速搭建大型单页应用. ...
- 懒散的态度就是一剂慢性毒药——《我是一只IT小小鸟》读后感(第四周)
进度拖延是所有团队项目的噩梦,有效的进度管理也许能够解决问题,但我认为更根本的是整个团队的工作态度.大家都希望能够加入一个人人都认真负责积极完成任务的团队,但比如何找这样一个团队更重要的是如何将自己变 ...
- 修改zabbix为中文,并解决乱码问题(三)
当Zabbix安装完成后,默认则是英文界面,有的人看英文不习惯,现在将其改为中文界面 一.修改为中文 1.打开Zabbix界面,Administrator-Users 选择语言-Chinese(zh_ ...
- ethcode
pragma solidity ^0.4.0;contract Ballot { struct Voter { uint weight; bool voted; uint8 vote; address ...
- leetcode summary-section II
151 Reverse Words in a String class Solution { public: void reverseWords(string &s) { string res ...
- package.json作用
这个文档的内容是你必须要知道的,它必须是JSON文本格式.每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元 ...
- [翻译] WZFlashButton
WZFlashButton This is a custom button with flash-like effect. Inspired by Ripple Effect. 这是一个自定义的按钮, ...
- Mysql学习---使用Python执行存储过程
使用Python执行存储过程 使用Python执行存储过程[2部分]: 1.执行存储过程,获取存储过程的结果集 2.将返回值设置给了 @_存储过程名_序号 = #!/usr/bin/env pyt ...
- 企业级Nginx增加日志选项
日志介绍 目的:将用户的访问信息记录到指定的文件中由ngx_http_log_module模块负责 访问日志参数: access_log:指定日志文件的路径和使用何种日志格式记录日志 log_form ...