62,614
社区成员
发帖
与我相关
我的任务
分享
//从控制台输入固定长度的文本
public static String readFixedLengthString(int length){
Scanner scan = new Scanner(System.in);
Pattern pattern = Pattern.compile("[\\u0000-\\uffff]{" + length + "}"); //长度限制
String result = scan.next(pattern);
scan.close();
return result;
}
//增加数组长度
public static <T> T[] grow(T[] original,int length){
return Arrays.copyOf(original, original.length + length);
}
//测试
public static void main(String[] args){
//示例:输入固定长度的字符串
try {
String str = readFixedLengthString(5);
System.out.println(str);
} catch (InputMismatchException e) {
System.out.println("输入格式不正确,请输入长度为5的字符串");
}
//示例:数组扩容
Byte[] arr = new Byte[1024];
System.out.println("old length:" + arr.length);
arr = grow(arr, 1024);
System.out.println("new length:" + arr.length);
}
package com.test;
import java.util.Arrays;
import java.util.Scanner;
public class MyTest {
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
answer1();
answer2();
scanner.close();
}
public static void answer1(){
System.out.println("【第 1 题】");
String s = null;
do {
System.out.print("请输入长度为9的字符串:");
s =scanner.next();
System.out.println(String.format("你输入的字符串为[%s],长度为%s", s,s.length()));
} while (s != null && s.length()!=9);
System.out.println("总结:只要让输入的字符串的 length()等于9就可以了 \n");
}
public static void answer2(){
System.out.println("【第 2 题】");
int arr1[] = {1,2,3,4,5};
System.out.println(String.format("我是arr1数组:%s,我的长度是%s",Arrays.toString(arr1),arr1.length));
System.out.print("请输入现在变化后的数组大小:");
int arr2[] = Arrays.copyOf(arr1,scanner.nextInt());
System.out.println(String.format("我是arr2数组:%s,我的长度是%s",Arrays.toString(arr2),arr2.length));
System.out.println("总结:数组扩展,用 Arrays.copy(原数组,扩展量) 函数即可。");
}
}