Java学习第三十三天
一、今天干了什么
继续使用Java写PTA
二、遇到的问题
1.输入一个char型字符的问题
以PTA 7-12 两个数的简单计算器问题为例
需要输入“加减乘除”运算符,这里输入方法是:第一个数字+空格+运算符+第二个数字,在这里我是这么解决的:调取变量str的charAt(0)方法获取第一个字符
Scanner sc = new Scanner(System.in); String str = sc.next(); char point = str.charAt(0);
2.输出格式的控制:
使用System.out.printf()
附学习链接:https://blog.csdn.net/quhongjuan12/article/details/79781101
3.关于获取字符数组长度和字符串长度这码事
数组用 length,字符串用 length 跟上小括号
附链接:https://www.cnblogs.com/qing-gee/p/12090216.html
4.比较两个字符串的大小:
String.compareTo
详细使用方法如 PTA 7-30 字符串的冒泡排序
- 如果参数字符串等于此字符串,则返回值 0;
- 如果此字符串小于字符串参数,则返回一个小于 0 的值;
- 如果此字符串大于字符串参数,则返回一个大于 0 的值。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int K = sc.nextInt(); String[] str = new String[100]; for(int i = 0;i < N;i++) { str[i] = sc.next(); } for(int i = 0;i < K;i++) { for(int j = 0; j < N - i - 1;j++) { if(str[j].compareTo(str[j + 1]) > 0) { String temp = str[j]; str[j] = str[j + 1]; str[j + 1] = temp; } } } for(int i = 0;i < N - 1;i++) { System.out.print(str[i] + "\n"); } System.out.print(str[N - 1]); } }
5.字符串循环左移的输出问题:
两种输出方法
(1)使用str.substring()方法来输出字符串中的一部分
public String substring(int beginIndex)
或
public String substring(int beginIndex, int endIndex)
beginIndex -- 起始索引(包括), 索引从 0 开始。
endIndex -- 结束索引(不包括)。
(2)使用str.charAt(i),通过循环来逐个输出字符串str在i位置的各个数据
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc=new Scanner(System.in); String str=sc.nextLine(); int a=str.length(); int b=sc.nextInt(); b%=a; for(int i=b;i<str.length();i++){ System.out.print(str.charAt(i)); } for(int i=0;i<b;i++){ System.out.print(str.charAt(i)); } } }