1 编程题 1-8
1,
data[i].indexOf("汉", 1) > 0
//第一个参数是要查找的字符(“汉”)。
//第二个参数是起始查找位置(1 表示从字符串的第二个字符开始查找)
str.toCharArray() 字符数组
2,
StringBuffer buffer = new StringBuffer(str);
/*StringBuffer 是一个可变的字符序列,它可以动态地修改字符串(添加、删除、反转等),而不需要每次都创建新的字符串对象。
new StringBuffer(str) 创建一个 StringBuffer 对象,并初始化为 str 字符串的内容。在这里,str 是在前面的代码中构建的转换后的字符串。*/
3,
buffer.reverse()
4,
replaceAll(String regex, String replacement)
String newStr = line.replaceAll("\\d+", "");
//匹配一个或多个连续的数字替换成空
2,
//System.out.println(Arrays.toString(split));输出数组
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String[] split = line.split(";");
//以分号分开
int sum=0;
for(int i=0;i<split.length;i++)
{
String book=split[i];
int index = book.indexOf(":"); //冒号为全角字符
String bookname=book.substring(0, index).trim();
//trim用于去除两端空格,不去除中间的
String bookPrice=book.substring(index+1).trim();
int price=Integer.parseInt(bookPrice);
//字符串转为数字
sum+=price;
System.out.println(bookname+"--"+bookPrice);
}
System.out.println("总价格--"+sum);
}
}
3,
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
String line = sc.nextLine(); // 读入字符串
if (line.equals("end"))
break;
String[] split = line.split("\\D+");
// \\D+ 表示匹配一个或多个连续的非数字字符。
/*假设用户输入的字符串是 "abc123def456gh789",
执行 line.split("\\D+") 后的结果会是:
["", "123", "456", "789"]
*/
int i;
long sum = 0;
for (i = 0; i < split.length; i++) {
if (!split[i].equals("")) {
int digit = Integer.parseInt(split[i]);
sum += digit;
}
}
System.out.println(sum);
}
}
}
4,字符串用equals
/*
Map<String,Integer>
LinkedHashMap;
map.put,map.get;
map.gerOrDefault();
map.keySet();
*/
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String name=null;
Map<String,Integer> map=new LinkedHashMap<String,Integer>();
while(true)
{
name=sc.next();
if(name.equals("end"))
break;
map.put(name, map.getOrDefault(name, 0)+1);
}
/*
V getOrDefault(Object key, V defaultValue);
map.getOrDefault(name, 0)获取当前名字的出现次数,
如果该名字尚未出现,则返回0。
然后将这个次数加1,并存回map。
*/
for(String name1:map.keySet())
{
System.out.println(name1+" "+map.get(name1));
//keySet() 方法返回一个包含映射中所有键的 Set 视图。
// 这意味着你可以通过这个 Set 来遍历所有的键。
}
}
}
5,
Character.isJavaIdentifierStart(first)
Character.isJavaIdentifierPart(part)
is Java Identifier Part
s.endsWith();
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
String s;
while (reader.hasNext())
{
s = reader.nextLine();
if (s.endsWith(".java") && judge(s))
System.out.println("true");
else
System.out.println("false");
}
}
public static boolean judge(String s)
{
boolean flag = true;
if (Character.isJavaIdentifierStart(s.charAt(0)))
{
for (int i = 1; i < s.length()-5; i++)
{
if (!Character.isJavaIdentifierPart(s.charAt(i)))
flag = false;
}
}
else
flag=false;
return flag;
}
}
6,
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
String s;
while (reader.hasNext())
{
s = reader.nextLine();
if (s.endsWith(".java") && judge(s))
System.out.println("true");
else
System.out.println("false");
}
}
public static boolean judge(String s)
//定义成静态方法才不用实例化,否则需要实例化main
{
boolean flag = true;
if (Character.isJavaIdentifierStart(s.charAt(0)))
{
for (int i = 1; i < s.length()-5; i++)
{
if (!Character.isJavaIdentifierPart(s.charAt(i)))
flag = false;
}
}
else
flag=false;
return flag;
}
}
2 判断题
1,在 Java 中,String 对象是不可变的(immutable)。这意味着,一旦创建了一个 String 对象,其内容就不能被修改。任何对字符串的修改都会创建一个新的 String 对象,而不是修改原有的对象。
2,字符串缓冲区类(StringBuffer)是一个灵活且高效的处理字符串的工具,特别适用于需要频繁进行字符追加、删除或修改的场景。
3 单选题
1,字符串常量池
2,
加号运算符在字符串与数字相结合时,会将数字转换为字符串)
int a = 2, b = 8, c = 6;
String s = "abc";
System.out.println(a + b + s + c);
//10abc6
3,如果你使用无参数构造函数创建 StringBuffer,它的初始容量为 16。这意味着在不需要扩展容量的情况下,StringBuffer 可以存储最多 16 个字符。
4,字符串数字转化
float value = Float.parseFloat(str);
5,
new String(chars,1,3)包含3
s.substring(3,4)不包括4
int i=Integer.parseInt(str1,2)
视为二进制数分析
!!!字符串不能改变
6,字节和字符串(不懂!)
7,
8
,由于 StringBuffer 的 append 方法返回的是对原对象的引用(即 buffer 本身),因此 buffer2 和 buffer 实际上指向的是同一个 StringBuffer 对象。
10,
4 多选题
1,封装类和基本数据类型
2,
3,
4,