1. 存在问题为忽略了最后输入的是空格的情况
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* 题目描述
计算字符串最后一个单词的长度,单词以空格隔开。
输入描述:
一行字符串,非空,长度小于5000。
输出描述:
整数N,最后一个单词的长度
示例1
输入
hello world
输出
5
* @author XiaoguniangAnn
*
*/
public class Test_1 {
public static void main(String [] args) throws IOException{
String str="";
int ini=0;
try(BufferedReader sr = new BufferedReader(new InputStreamReader(System.in))){
str= sr.readLine();
System.out.print(str);
}catch (IOException e) {};
ini = str.lastIndexOf(" ");
System.out.print(ini);
System.out.print(str.length() - ini-1);
}
}
改进后,使用一个中间StringBuffer实现删除末尾空格,增加的函数为
public String solve(String s) {
StringBuffer sb= new StringBuffer(s);
while(sb.charAt(sb.length()-1) ==' ') {
sb.deleteCharAt(sb.length()-1);
}
return sb.toString();
}
再贴一个网上看到的感觉很不错的代码,
链接:https://www.nowcoder.com/questionTerminal/8c949ea5f36f422594b306a2300315da
来源:牛客网
①类名必须是Main
②逻辑必须周全考虑null和空情况
③几次没通过也有点郁闷,很简单的代码单独去写就会出错 哈哈 需要多敲代码类 么么哒~
import java.util.Scanner;
public class Main{
public static int getLength(String str) {
int length = 0;
if (str != null && str.length() > 0) {
String[] arr = str.split("\\s+");
length = arr[arr.length - 1].length();
} else {
length = 0;
}
return length;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
String str = scanner.nextLine();
int len = getLength(str);
System.out.println(len);
}
}
}
2.存在问题为读题不认真,最初读取时区分了大小写
import java.util.Scanner;
/**
* 题目描述
写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
输入描述:
输入一个有字母和数字以及空格组成的字符串,和一个字符。
输出描述:
输出输入字符串中含有该字符的个数。
示例1
输入
ABCDEF A
输出
1
* @author XiaoguniangAnn
*
*/
public class Test_2 {
public static int count(String str, char c) {
int tmp=0;
for(int i =0; i<str.length();i++) {
if(str.charAt(i)== c ) {
tmp++;}else
if((str.charAt(i)>='a' && str.charAt(i)<='z') && str.charAt(i) ==c+32) {
tmp++;}else if((str.charAt(i)>='A' && str.charAt(i)<='Z') && str.charAt(i) ==c-32) {
tmp++;
}
}
return tmp;
}
public static void main(String [] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.print(str);
System.out.print("char input");
char c = sc.next().charAt(0);
System.out.println(count(str,c));
sc.close();
}
}