/*
* 程序实现目标:输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。
程序要求:该字符串只包含小写字母,若其值加5后的字符值大于'z',将其转换成从a开始的字符。
*/
public class Main001 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String str="afdsfdsxz";
char[] indata=str.toCharArray();
addAccii(indata);
}
public static void addAccii(char[] indata){
for(int i=0;i<indata.length;i++){
if((indata[i]+5)>122){
indata[i]= 'a';
}else{
indata[i]= (char)(indata[i]+5);
}
System.out.print(indata[i]);
}
}
}
/*
* 功能描述:判断一个字符串中是否只含有相同的子字符串(子串长度>=2)
输入:abab
返回:true
输入:abcd
返回:false
*/
public class Main002 {
static void main(String[] args) {
String str = "ertyertyabcdabcdsdf464132132146464165479lhkjhnkjgibkjbjljdslfsajdlasdf4asdf5a7e";
int count = 2;
List<String> maxLengthList = newArrayList<String>();
maxLengthList = checkString(str,count, maxLengthList);
System.out.println(maxLengthList);
StringBuilder sbBuilder = new StringBuilder();
if (maxLengthList.isEmpty()) {
System.out.println("无重复并且长度大于2的子串!");
} else {
int maxLength = maxLengthList.get(0).length();
sbBuilder.append(maxLengthList.get(0)).append(",");
for (int i = 1; i < maxLengthList.size(); i++) {
if (maxLengthList.get(i).length() == maxLength){
sbBuilder.append(maxLengthList.get(i)).append(",");
}
}
System.out.println("重复最长子串为:"
+sbBuilder.toString().substring(0,
sbBuilder.toString().length() - 1));
}
String str1 = "abab";
int startindex = 0;
int count2 = 2;
System.out.println(isHave(str.substring(0,count2), str1, startindex,
count));
}
public static List<String>checkString(String str, int count,
List<String> maxLengthList) {
if (count >str.length() / 2 + 1) {
return maxLengthList;
}
for (int i = 0; i <str.length() - count; i++) {
List<String> strList = new ArrayList<String>();
String regex = str.substring(i,i + count) + "+?";
Pattern pattern= Pattern.compile(regex);
Matcher matcher= pattern.matcher(str);
while (matcher.find()) {
strList.add(matcher.group());
}
if (strList.size()> 1
&& !maxLengthList.contains(str.substring(i, i + count))) {
maxLengthList.add(str.substring(i, i + count));
}
}
count++;
if (count >str.length()) {
return maxLengthList;
}
checkString(str,count, maxLengthList);
Collections.sort(maxLengthList,new Comparator<Object>() {
@Override
publicint compare(Object o1,Object o2) {
int length1 =o1.toString().length();
int length2 =o2.toString().length();
return length1 - length2< 0 ? 1 : (length1 - length2 == 0 ? o1
.toString().compareTo(o2.toString()) : -1);
}
}
);
return maxLengthList;
}
public static boolean isHave(Stringstr1, String str,int startindex,
int count) {
boolean isHave =false;
++startindex;
if (count >str.length() / 2 + 1) {
return isHave;
}
List<String>strList = new ArrayList<String>();
String regex = str1+ "+?";
Pattern pattern =Pattern.compile(regex);
Matcher matcher =pattern.matcher(str);
while (matcher.find()) {
strList.add(matcher.group(0));
}
if (strList.size()> 1) {
isHave = true;
} else if(!str.endsWith(str1)) {
int endIndex =startindex + count;
if (endIndex >str.length()) {
return isHave;
}
isHave = isHave(str.substring(startindex,endIndex), str,
startindex, count);
} else {
++count;
isHave = isHave(str.substring(0,count), str, startindex, count);
}
return isHave;
}
}
/*
* 3、手动输入一个存储整数的数组,要求输出数组里面的2个最大值。
实例:
输入:1,2,5,9,84,3,2
输出:84,9
* */
public class Main003 {
public static void main(String[] args) {
Main003 test = new Main003();
int[] arr = {1,45,98,6,4};
test.getMaxValue(arr);
}
public void getMaxValue(int[] arr){
int temp=0;
if(arr.length<1){
System.out.println("数组元素个数至少为2");
}
else{
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[i]>arr[i+1]){
temp = arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
System.out.print(arr[arr.length-1]+"、"+arr[arr.length-2]);
}
}
}
/*
* 题目描述:
有这样一类数字,他们顺着看和倒着看是相同的数,例如:121,656,2332等,
这样的数字就称为:回文数字。编写一个函数,判断某数字是否是回文数字。
要求实现方法:
public String isPalindrome(String strIn);
【输入】strIn:整数,以字符串表示;
【返回】true:是回文数字;
false: 不是回文数字;
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例:
输入:strIn = “121”
返回:”true
*/
public class Main004 {
public static void main(String[] args) {
String inputValue = JOptionPane.showInputDialog("请输入一个整数");
long inputValueLong =Long.parseLong(inputValue);
long temp =inputValueLong;
long reverseLong = 0L;
while(inputValueLong !=0)
{
reverseLong =reverseLong*10+inputValueLong%10;
inputValueLong =inputValueLong/10;
}
if(reverseLong ==temp)
System.out.println("你输入的是回文数");
else
System.out.println("你输入的不是回文数");
}
}
/*
* 6.手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。
* 提示(可以用Map)
实例:
输入:aaabbbccc
输出: a 3
b 3
c 3
*/
public class Main006 {
public static void main(String[] args) {
statTimes("dfsdfgerfgtewthgat");
}
static void statTimes(Stringparam)
{
if(param ==null) return;
//hashset保存不重复的值因此
HashSet<Character>hSet = new HashSet<Character>();
char[] cs =param.toCharArray();
for (char c : cs)
hSet.add(c);
ArrayList<Character>list = new ArrayList<Character>(hSet);
int n =hSet.size(); //有多少种字符
int[] times =new int[n]; //保存每种字符的出现次数
for (char c : cs) //进行统计
times[list.indexOf(c)]++;
for (int i = 0; i < n;i++)
System.out.println("字符 " + list.get(i) +"出现了:" + times[i] +"次。");
//打印结果
}
}
/*
* 要求实现方法public String addTwoBigNumber(String s1,string s2)
大数相加,注意处理异常
*/
public class Main007 {
String result,s1,s2;
int s1Len, s2Len;
public Main007(Stringstr1,String str2)
{
s1=str1;
s2=str2;
}
/**
* @param args
*/