
正文
考虑下列JAVA代码 考虑下面的代码段创建了多少个单独进程
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
下列一段java代码是什么意思?
java代码是输出个前8个是#,后两个为10的一行字符。即结果是########10。
意思是先定义一个长度为10的数组chs[],然后填充chs数组中的每一个元素都是#,将字符串str放到src数组中,然后将src数组的元素即10,放入到chs数组的末尾,然后返回,在主函数中输出。
public class StringUtils {
public static void main(String[] args) {
System.out.println(leftPad("10",10,'#'));
}
public static String leftPad(String str,int length,char ch){
char[] chs=new char[length]; //定义一个10长度的char数组
Arrays.fill(chs, ch); //将指定的ch(“#”)字符分配到char数组的每个序列中
char[]src=str.toCharArray(); //将str中的每个元素分配到一个新的char数组中
System.arraycopy(src, 0, chs, length-src.length, src.length); //将源数组src从第0个元素开始数两个长度,拷贝到目标数组chs中,起始的位置为length-src.length(8)
return new String(chs);//将新的chs数组返回
}
}
相关问答
Q1: Java集合:请解释下列代码为何会在运行时抛出异常
添加到TreeSet中的元素,都会按照元素的自然顺序(默认)或者初始化时指定的排序规则进行排序。对于没有实现排序方法的对象,将会抛出异常。
在Java API中也特别指出了这个异常:
ClassCastException -
如果指定对象无法与该 set 中的当前元素进行比较
所以,添加的元素必须要实现compareTo 方法。Object 基类是没有实现这个方法的,所以会抛出一个类型转换异常
Q2: 使用java编写代码如下要求
NewPhone类
package com.baidu.question;
public class NewPhone extends Phone {
private boolean mute = true;
@Override
public void call() {
if(mute){
super.call();
}else{
System.out.println("语音已关闭");
}
}
//这里是直接设置
public void setMute(boolean mute){
this.mute=mute;
}
//担心你的题目是要求两种方法,写的第二种,下面两个方法负责开关
public void openMute(){
this.mute=true;
/*
* 也可以这样写
* setMute(true);
* 下边的方法一样
* */
}
public void closeMute(){
this.mute = false;
}
}
Phone类
package com.baidu.question;
public class Phone {
public void call(){
System.out.println("打电话");
}
}
测试类
package com.baidu.question;
public class PhoneTest {
public static void main(String[] args) {
Phone phone = new Phone();
phone.call();
NewPhone newPhone = new NewPhone();
newPhone.call();
newPhone.setMute(false);
newPhone.call();
newPhone.openMute();
newPhone.call();
newPhone.closeMute();
newPhone.call();
}
}
测试结果
打电话
打电话
语音已关闭
打电话
语音已关闭
Q3: 请把下列一段java代码加上注释: 谢谢哈
这个是给你看的注释版:
import java.util.LinkedList;
import java.util.Scanner;
public class Test6 {
int[][] array;
int m = 0, n = 0;
LinkedListString quere = new LinkedListString();
public Test6() {
quere.add("r");
quere.add("d");
quere.add("l");
quere.add("u");
}//定义了一个List里面装了["u","l","d","r"]四个String类型的东西
//从后面的应用来,"u"代表的是up,这个程序做的是根据给定数字X,构建
//出一个一维二维长均为X的数组,数组中以顺时针的方式用数字1到X*X进行填充
//可以想象成蛇行的往里面盘绕.
//这里的"u"也就是从下往上填充的意思了,其他的就不用我说了吧,"l"=left,"d"=down,"r"=right
public void printTest6(int N) {
array = new int[N][N];
for (int i = 1; i = N * N; i++) {
array[m][n] = i;
indexControl(quere, N);
}//数组赋值执行完毕
//接下来打印出数组
for (int i = 0; i N; i++) { //N 行
for (int j = 0; j N; j++) { //N 列
System.out.print(array[i][j] + "\t");//输出二维数组 "\t"是一个tab键符号
}
//每打完一组二维的数据,加换行
System.out.println();//换行
System.out.println();//换行
}
}
private void indexControl(LinkedListString quere, int N) {
String method = quere.peek();
//调用peek()返回链表的头部节点,对于初始状态["u","l","d","r"]来说,返回的是"r"
if (method.equals("r")) {
//如果头部节点是"r",换句话说具体填充的时候就是从左往右先开始填充.
//这时候的填充操作,对于二维数组来说自然就是固定第一维不变,第二维递增了.
n++;//固定第一维不变,第二维做递增操作
if ((n == N - 1) || array[m][n + 1] != 0) {
//这种操作的停止条件是走到了数组的边缘,也就是n == N - 1,因为n是从0开始发番
//另一种终止条件就是找到了一个已经被赋值过了的位置.
quere.add(quere.poll());
//条件终止之后就应该换方向了.调用poll方法获得头节点,初始状态就是"r",
//然后poll方法还会把"r"从原始链表中删除,因此调用完poll之后原始链表应该变成了
//["u","l","d"],然后在调用add方法,把"r"追加到尾部,此时链表就变成["r","u","l","d"]
//下一步再取头就是"d"了,也就是开始往下走.
}
} else if (method.equals("d")) {
//这里,如果头节点是"d",也就是从上往下开始赋值了,
//这时候应该是保持第二维坐标不变,第一维坐标递增.
m++;//固定第二维不变,第一维做递增操作
if ((m == N - 1) || array[m + 1][n] != 0) {
//这种操作的停止条件是走到了数组的边缘,也就是m == N - 1,因为m是从0开始发番
//另一种终止条件就是找到了一个已经被赋值过了的位置.
quere.add(quere.poll());
//条件终止开始换方向,把"d"放在链表的尾部,"l"成了头
}
} else if (method.equals("l")) {
//这里,如果头节点是"l",也就是从右往左开始赋值了,
//这时候应该是保持第一维坐标不变,第二维坐标递减.
n--;//固定第一维不变,第二维做递减操
if ((n == 0) || array[m][n - 1] != 0) {
//这种操作的停止条件是走到了数组的边缘,也就是n == 0.
//另一种终止条件就是找到了一个已经被赋值过了的位置.
quere.add(quere.poll());
//条件终止开始换方向,把"l"放在链表的尾部,"u"成了头
}
} else {
//这里,如果头节点是"u",也就是从下往上开始赋值了,
//这时候应该是保持第二维坐标不变,第一维坐标递减.
m--;//固定第二维不变,第一维做递减操
if (array[m - 1][n] != 0) {
//终止条件就是找到了一个已经被赋值过了的位置.这里不把数组边界作为判断条件是因为,
//可以保证在执行到这个部分的时候,数组的上部边界已经全部有值.
quere.add(quere.poll());
//条件终止开始换方向,把"u"放在链表的尾部,"r"成了头
}
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);//将输入流交给scan对象
System.out.println("请输入矩形的大小:");
int num = scan.nextInt();//scan对象获得从控制台输入的东西
new Test6().printTest6(num);//根据输入的数值构建数组
}
}
另外,程序不够严密,有障害,输入不是大于1的正整数就会挂,下面是修正版:
package Date0906.Date0906_Test6;
import java.util.LinkedList;
import java.util.Scanner;
public class Test6_Up {
int[][] array;
int m = 0, n = 0;
LinkedListString quere = new LinkedListString();
public Test6_Up() {
quere.add("r");
quere.add("d");
quere.add("l");
quere.add("u");
}
public void printTest6(int N) {
array = new int[N][N];
for (int i = 1; i = N * N; i++) {
array[m][n] = i;
indexControl(quere, N);
}
for (int i = 0; i N; i++) { //N 行
for (int j = 0; j N; j++) { //N 列
System.out.print(array[i][j] + "\t");//输出二维数组
}
System.out.println();//换行
System.out.println();//换行
}
}
private void indexControl(LinkedListString quere, int N) {
String method = quere.peek();
if (method.equals("r")) {//从左往右写二维数组
n++;
if ((n == N - 1) || ( N !=1 array[m][n + 1] != 0 )) {
//如果N为1或者检索到边界,或者检索到已经被赋值的点,重置链表,换赋值方向
quere.add(quere.poll());
}
} else if (method.equals("d")) {//从上往下写二维数组
m++;
if ((m == N - 1) || ( N !=1 array[m + 1][n] != 0 )) {
//如果N为1或者检索到边界,或者检索到已经被赋值的点,重置链表,换赋值方向
quere.add(quere.poll());
}
} else if (method.equals("l")) {//从右往左写二维数组
n--;
if ((n == 0) || ( N !=1 array[m][n - 1] != 0 )) {
//如果N为1或者检索到边界,或者检索到已经被赋值的点,重置链表,换赋值方向
quere.add(quere.poll());
}
} else {//从下往上写二维数组
m--;
if (N !=1 array[m - 1][n] != 0) {
//如果N为1或者检索到已经被赋值的点,重置链表,换赋值方向
quere.add(quere.poll());
}
}
}
public static void main(String[] args) {
Scanner scan = null;
System.out.println("请输入矩形的大小:");
int num = 0;
while ( true ) {
scan = new Scanner(System.in);
//用try捕获异常,当输整数以外的内容时给提示和再次输入的机会.
try {
num = scan.nextInt();
} catch (Exception e) {
System.out.println("请输入正整数");
continue;
}
//如果发现输入的数字是非正数,则要求再次输入
if ( 0 = num ) {
System.out.println("请输入正整数");
continue;
}
break;
}
new Test6_Up().printTest6(num);
}
}
Q4: java编程,看看下列代码有什么问题
if(n=90.0);//分号不 应该有的
grade='A';
else if(n=80.0)
grade='B';
else if(n=70.0)
grade='C';
else if(n=60.0)
grade='D';
else
grade='F';
System.out.println(grade);
}
}
关于考虑下列JAVA代码和考虑下面的代码段创建了多少个单独进程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








