import java.util.Collections;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
String str = String.join("",Collections.nCopies(n," "));
for (int i = 0; i < n; i++) {
char[] temp = str.toCharArray();
temp[i] = '*';
temp[n-i-1] = '*';
System.out.println(new String(temp));
}
}
}
}
做了好几道输出图案的题,代码越写越长,参考一下别人的代码学学新知识。
经常需要将一个数组或者List的各项通过分隔符连接成字符串。一般的实现逻辑是通过成员+分隔符连接,然后在结果截掉最后一个分隔符。String.Join方法实现的正是这一功能。
List names=new ArrayList<String>();
names.add("1");
names.add("2");
names.add("3");
System.out.println(String.join("-", names));
String[] arrStr=new String[]{"a","b","c"};
System.out.println(String.join("-", arrStr));
输出:
1-2-3
a-b-c
ncopies(int, T) 方法用于返回一个不可变列表组成的n个拷贝的指定对象。 声明:public static List nCopies(int n, T o)
参数:n-- 在返回列表中元素的个数;o-- 在返回列表中反复出现的元素。 返回值:方法调用返回的不可变列表组成的n个拷贝的指定对象。 异常:IllegalArgumentException-- 如果 n < 0 此异常被抛出。
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Map<Integer,String> map = new HashMap<>(16);
map.put(200,"OK");
map.put(202,"Accepted");
map.put(400,"Bad Request");
map.put(403,"Forbidden");
map.put(404,"Not Found");
map.put(500,"Internal Server Error");
map.put(502,"Bad Gateway");
while (sc.hasNext()) {
int state = sc.nextInt();
System.out.println(map.get(state));
}
}
}
用switch做完看其他人的方法发现了这种做法,学习一下map。
Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。
HashMap
LinkedHashMap
注意:Map接口中的集合都有两个泛型变量
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String[] strs=sc.nextLine().split(" ");
if(strs[0].equals("admin")&&strs[1].equals("admin")) {
System.out.println("Login Success!");
}else {
System.out.println("Login Fail!");
}
}
}
判断字符串相同方法:String.equals()
public class Main {
public static void main(String[] args) {
int sum=0;
for(Integer i=1;i<=2019;i++) {
if(i.toString().contains("9")) {
sum++;
}
}
System.out.println(sum);
}
}
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
Arrays.sort(a);
for(int i = 0; i < a.length; i ++) {
System.out.print(a[i] + " ");
}
}
}
输出:
0 1 2 3 4 5 6 7 8 9
1、Arrays.sort(int[] a)
这种形式是对一个数组的所有元素进行排序,并且是按从小到大的顺序。
2、Arrays.sort(int[] a, int fromIndex, int toIndex)
这种形式是对数组部分排序,也就是对数组a的下标从fromIndex到toIndex-1的元素排序,注意:下标为toIndex的元素不参与排序。