字符串练习
1.判断输入的字符串是否是 .java 结束 public boolean endsWith(String suffix) (查帮助,查此方法的说明)
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您想要的内容");
String string = scanner.nextLine();
if (string.endsWith(".java")){
System.out.println("是以.java结尾的字符串");
}else{
System.out.println("不是以.java结尾的字符串");
}
}
2. 输出“北京欢迎你”中“欢迎”是第几位。 public int indexOf(String str) (查帮助,查此方法的说明)
public static void main(String[] args) {
String string ="北京欢迎你";
int index = string.indexOf("欢迎");
System.out.println(index);
}
3. 把输入的小写字母改成大写字母输出。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入小写字母");
String string = scanner.nextLine();
string = string.toUpperCase();
System.out.println(string);
}
4. “那车水马龙的人世间,那样地来 那样地去,太匆忙”最后一次出现“那”的位置。
public static void main(String[] args) {
String string = "那车水马龙的人世间,那样地来 那样地去,太匆忙”最后一次出现“那”的位置。";
int index = string.lastIndexOf("那");
System.out.println(index);
}
5. “美丽呀 倒影在心房 美丽呀 泪珠挂腮上 美丽呀 花儿吐芬芳 美丽呀 你让我慌张”把这个字符串所有“美丽”替换成“倒霉”。
public static void main(String[] args) {
String string = "美丽呀 倒影在心房 美丽呀 泪珠挂腮上 美丽呀 花儿吐芬芳 美丽呀 你让我慌张";
String index = string.replace("美丽","倒霉");
System.out.println(index);
}
6. "白 毕 卞 蔡 曹 岑 常 车 陈 成 程 池 邓 丁 范 方 樊 费 冯 符 傅 甘 高 葛 龚 古 关 郭 韩"把这个字符串以空格为分隔,分到字符串数组中,再输出。然后再以”_”为分隔符,连接成一个字符中
`public String[] split(String regex) (查帮助,查此方法的说明) `
public static void main(String[] args) {
String string = "白 毕 卞 蔡 曹 岑 常 车 陈 成 程 池 邓 丁 范 方 樊 费 冯 符 傅 甘 高 葛 龚 古 关 郭 韩";
String [] strings = string.split(" ");
for (String s:strings){
System.out.println(s);
}
string = "";
for (int i=0;i<strings.length;i++){
if (i<strings.length-1){
string+=strings[i]+"_";
}else {
string+=strings[i];
}
}
System.out.println(string);
}
7.求出字符串中有多少种字符,以及每个字符的个数
`static void printCharInfo(String str)`
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您想要的内容");
String string = scanner.nextLine();
int sum = 0;
for (int i=0;i<string.length();i++){
String string1 = string.substring(i,i+1);
if(i<string.length()-1){
String string2 = string.substring(i+1);
if (!string2.contains(string1)){
sum++;
}
}else {
sum++;
}
}
System.out.println("字符的个数:"+sum);
}
8.去掉字符串右边的空格
`String rtrim(String str)`
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您想要的内容");
String string = scanner.nextLine();
while (string.endsWith(" ")){
string = string.substring(0,string.length()-1);
}
System.out.println(string+"0");
}
9.将s所指字符串的正序和反序进行连接,例如 "ok"->"okko"(手动编写方法与API方法两种方式)
`String concat(String str);`
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您想要的内容");
String string = scanner.nextLine();
StringBuilder stringBuilder = new StringBuilder(string);
stringBuilder = stringBuilder.reverse();
String newstring = stringBuilder.toString();
String string1 = string+newstring;
System.out.println(string1);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您想要的内容");
String string = scanner.nextLine();
char [] cs = string.toCharArray();
String newStr = "";
for (int i=cs.length-1;i>=0;i--){
newStr+=cs[i];
}
String s = string+newStr;
System.out.println(s);
}
10.字符串右移n位,例如 "hello world" 右移两位 后ldhello wor
要求写一个方法实现此功能,方法的格式是
```
String moveToRight(String str,position p)
str:需要移动的字符串
p:右移的位数
```
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您想要的内容");
//string 代表字符串
String string = scanner.nextLine();
System.out.println("请输入向右移动的位数");
int number = scanner.nextInt();
//真实移动的次数
number = number%string.length();
//s代表从后截取的字符串
String s = string.substring(string.length()-number);
//s1代表从后截取之后剩余的字符串
String s1 = string.substring(0,string.length()-number);
//newStr代表移动之后的结果
String newStr = s+s1;
System.out.println(newStr);
}
11.求5个字符串中最长的那个,把最长的字符串打印出来
public static void main(String[] args) {
String [] strs = new String [5];
Scanner scanner = new Scanner(System.in);
for (int i=0;i<strs.length;i++){
System.out.println("请输入内容");
strs[i] = scanner.nextLine();
}
int index = 0;
int length = strs [index].length();
for (int i=0;i<strs.length;i++){
if (length<strs[i].length()){
length = strs [i].length();
index = i;
}
}
System.out.println(strs[index]);
}
12.若可以从一个源字符串中, 找到一个相符的字符串, 则返回第一个字符的索引位置,否则返回-1。
`int stringAt(String str,String subStr)`
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容");
String string1 = scanner.nextLine();
System.out.println("请输入内容");
String string2 = scanner.nextLine();
int index = -1;
for (int i=0;i<string1.length();i++){
if (i<string1.length()-string2.length()){
String s = string1.substring(i,i+string2.length());
if (s.equals(string2)){
index = i;
break;
}
}
}
System.out.println(string2+"出现");
}
13.判断一个字符串是否是回文
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容");
String string = scanner.nextLine();
StringBuilder stringBuilder = new StringBuilder(string);
stringBuilder = stringBuilder.reverse();
String newString = stringBuilder.toString();
if(string.equals(newString)){
System.out.println("是回文数");
}else{
System.out.println("不是回文数");
}
}
作者:SunMoonSky
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。