1、写在前面的话
- 进行算法学习
2、操作思路
- 将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 如:输入“I am a student”,输出“tneduts a ma I”。
- 统计字符串中重复字符的个数
- Java中计算某一个相同单词的个数
- 第一行输入一个有字母和数字以及空格组成的字符串,第二行输入一个字符。
next()是遇到空格;nextLine()是遇到回车
3、操作详情
3.1、将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 如:输入“I am a student”,输出“tneduts a ma I”。
import java.util.Scanner;
/**
* Created with IntelliJ IDEA.
* User: enzoism
* 将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。
* 如:输入“I am a student”,输出“tneduts a ma I”。
* Date: 2020/6/7- 20:02
*/
public class A_Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
// 直接使用字符反转
String next = scanner.nextLine();
StringBuffer buffer2= new StringBuffer(next);
System.out.println(buffer2.reverse().toString());
// 使用数组进行数据反转
char[] chars = next.toCharArray();
StringBuffer buffer = new StringBuffer();
for (int i = chars.length-1;i >=0; i--) {
buffer.append(chars[i]);
}
System.out.println(buffer.toString());
}
}
}
3.2、统计字符串中重复字符的个数
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
* Created with IntelliJ IDEA.
* User: enzoism
* 统计一段字符串中重复出现的单词次数
* Date: 2020/6/7- 20:02
*/
public class D_Main {
public static void main(String[] args) {
String str = "I am learning English.111中国哈哈$$%%^^";
str = str.replace(" ", "");
char[] chars = str.toCharArray();
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < chars.length; i++) {
if (map.get(chars[i]) == null) {
map.put(chars[i], 1);
} else {
map.put(chars[i], map.get(chars[i]) + 1);
}
}
Set<Character> characters = map.keySet();
Iterator<Character> iterator = characters.iterator();
while (iterator.hasNext()) {
Character next = iterator.next();
System.out.println(next.toString() + ":" + map.get(next));
}
}
}
3.3、Java中计算某一个相同单词的个数
import java.util.*;
/**
* Created with IntelliJ IDEA.
* User: enzoism
* Java中计算某一个相同单词的个数
* Date: 2020/6/7- 20:02
*/
public class C_Main {
public static void main(String[] args) {
// 此题明确有单词重复,否则要要进行判断
String str = "The best best best best";
String[] arr = str.split(" ");
Set set = new HashSet(Arrays.asList(arr));
int n = arr.length - set.size() + 1;
System.out.println("长度为:" + set.size());
System.out.println("相同单词的个数:" + n);
}
}
3.3、第一行输入一个有字母和数字以及空格组成的字符串,第二行输入一个字符。
import java.util.*;
/**
* Created with IntelliJ IDEA.
* User: enzoism
* 写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,
* 然后输出输入字符串中含有该字符的个数。不区分大小写。
* Date: 2020/6/7- 20:02
*/
public class E_Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String s = input.nextLine().toUpperCase();
char c = input.next().toUpperCase().charAt(0);
int output = test(s,c);
System.out.println(output);
}
public static int test(String str, char c) {
int num = 0;
if (null!= str && str.length()>0){
for (int i = 0; i < str.length() ; i++) {
if (c == str.charAt(i)){
num++;
}
}
}
return num;
}
}
网友评论