java语法
char[] 和 String的转换
char[] 和 String的转换
String是不可变的
String->char[] : (String s) char[] ch = s.toCharArray();
char[]->String : (char[] ch) String s = new String(ch);
java输入
import java.util.Scanner; //调用Scanner包
Scanner input=new Scanner(System.in); // 先创建输入的对象,然后才能使用输入方法
//创建对象后可以使用输入的方法,对应不同的数据类型应使用不同的输入方法;
//String类型
String str = input.next() ;
//或
String str = input.nextLine() ;
//int类型
int sum = input.nextInt() ;
//float类型
float tem = input.nextFloat() ;
//double类型
double d = input.nextDouble()
input.next();和input.nextLine();的区别:
input.next();的含义为接收到“ ”空白字符前的一个字符。
input.nextLine();的含义为接收到“\n”换行字符前的一个字符。
stringbuilder
《深入理解String、StringBuffer和StringBuilder》
《【Java 基础篇】Java StringBuilder:可变的字符串操作》
在Java中,字符串是不可变的,这意味着每次对字符串进行操作时都会创建一个新的字符串对象。然而,有时我们需要对字符串进行频繁的操作,这样就会导致大量的对象创建和内存开销。为了解决这个问题,Java提供了StringBuilder类,它是一个可变的字符串操作
StringBuilder sb = new StringBuilder();
344.反转字符串
class Solution {
public void reverseString(char[] s) {
for(int i=0,j=s.length-1; i<=j; i++, j--) {
char c = s[i];
s[i] = s[j];
s[j] = c;
}
}
}
541. 反转字符串II
- char[] 和 String的转换
- 解题关键是,定位好反转的尾部
class Solution {
public String reverseStr(String s, int k) {
char[] ch = s.toCharArray();
for(int i=0; i<ch.length; i+=2*k) {
int start = i;
int end = Math.min(ch.length - 1,start + k - 1);
while(start < end){
char temp = ch[start];
ch[start] = ch[end];
ch[end] = temp;
start++;
end--;
}
}
return new String(ch);
}
}
卡码网:54.替换数字
① java的输入
② StringBuilder
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.nextLine();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
if (Character.isDigit(s.charAt(i))) {
sb.append("number");
}else sb.append(s.charAt(i));
}
System.out.println(sb);
}
}