⑴ java中二維數組第一個下標為0
int[][] a=new int[0][0];
合法,不知道你那個serise是什麼值,但是根據你的意思應該是合法的.
java中數組的長度可以為零,這個可以應用於一些特定的情況,很多情況得到一個零長度的數組要比一個NULL的有用的多。
就像一個空的ArrayList比一個NUll好一樣,程序中不用專門去做NULL的判斷,直接拿來循環取值就行,雖然取不到.
⑵ java程序問題,為什麼結果總是不變(求二維數組的最大元素及其下標)
importjava.util.Scanner;
publicclassText4{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
Locationloc=newLocation();
System.out.println("輸入二維數組的行數和列數:");
intr=input.nextInt();
intc=input.nextInt();
double[][]a=newdouble[r][c];
System.out.println("輸入二維數組:");
for(inti=0;i<a.length;i++){
for(intj=0;j<a[i].length;j++){
a[i][j]=input.nextDouble();
}
}
loc.locateLargetst(a);
System.out.print("最大元素及其下標是:"+loc.maxValue+"在("+loc.row+","+loc.column+")");
}
}
classLocation{
publicintrow;
publicintcolumn;
publicdoublemaxValue;
Location(){
}
Location(intr,intc,doublem){
row=r;
column=c;
maxValue=m;
}
publicvoidlocateLargetst(double[][]a){//不需要static,如果用了不能直接使用屬性row和column及maxValue
maxValue=a[0][0];//變數在class中聲明不要再聲明,再聲明就成了局部變數
//introw=0; //變數在class中聲明不要再聲明,再聲明就成了局部變數
//intcolumn=0; //變數在class中聲明不要再聲明,再聲明就成了局部變數
for(inti=0;i<a.length;i++){
for(intj=0;j<a[i].length;j++){
if(maxValue<a[i][j]){
row=i;
column=j;
maxValue=a[i][j];
}
}
}
//returnnewLocation(row,column,maxValue);//本方法不需要返回任何信息
}
}
⑶ 如何用java 返回二維數組的兩個下標
publicclassErWerArray{
publicstaticvoidmain(String[]args){
String[][]arr={{"a","b"},{"1","2","3"}};
StringindexOf=getXiaBiao(arr);
}
publicstaticStringgetXiaBiao(String[][]arr){
Stringstr="";
for(inti=0;i<arr.length;i++){
for(intj=0;j<arr[i].length;j++){
str+=arr[i]+","+arr[j];
}
}
returnstr;
}
}
⑷ java 二維數組的下標索引可不可以用變數表示啊
當然可以,不然難道用常量!
⑸ Java返回二維數組的兩個下標
publicclassErWerArray{
publicstaticvoidmain(String[]args){
String[][]arr={{"a","b"},{"1","2","3"}};
StringindexOf=getXiaBiao(arr);
}
publicstaticStringgetXiaBiao(String[][]arr){
Stringstr="";
for(inti=0;i<arr.length;i++){
for(intj=0;j<arr[i].length;j++){
str+=arr[i]+","+arr[j];
}
}
returnstr;
}
}
⑹ java中 二維數組一維存下標,一維都賦初值為一 怎麼弄
沒明白你說的什麼意思。
解釋下一維數組和二維數組。
一位數組,你可以理解為一行數(這個數可以是數字、字元、字元串,由你定義的數組類型而定),如int[] a = new int[3];
a={1,2,3];
這個數組就是一維數組,a[0]=1,a[1]=2,a[2]=3.
要注意的是,new a[x],開辟了x個空間,而我們用的時候,下標從0開始,直到x-1。
二維數組:
int[][] a = new int[3][3],這就相當於一個3x3矩陣,3行3列。
給它賦值,a={{1,2,3},{4,5,6},{7,8,9}}
那麼a[0][0]=1,a[0][1]=2,…
a[1][0]=4,a[1][1]=5,…
a[2][0]=7,a[2][1]=8,a[2][2]=9.
這時第a[m][n],m是行,n是列,注意他們是下標,從0到總行數-1,0到總列數-1.
初學者總是在下標這里糾結,搞不清下標和個數的分別,總是出現下標越界的錯誤。
一定要明白,我們有n個值,那麼我們的下標是0,1,2,……,n-1
⑺ java二維數組下標0就越界
e[i] = s.toCharArray(); //如果s是空串,將導致e[i]指向空數組,進而導致e[i][0]越界。
自己單步調試看一下s和e[i]的值變化。
⑻ java 找到二維數組指定元素的位置
Scanner sn=new Scanner(new File(path)).useDelimiter("\r\n"); 這行代碼的意思應該是指定分割符為「/r/n」吧,這個/r/n不一定是換行,用這個分割的數組元素全了空值,換個成這樣吧
Scanner sn=new Scanner(new File(path)).useDelimiter([\\s]");
這樣表示用空字元分割
還有find方法里的這行代碼
if (ss[i][j].equals(str))
因ss[i][j]的值可能是空的,直接調用equals的話可能報空指針異常
所以equals前加個if 判斷一下,如果是空就不用equals了
這是我改的代碼
package com.jhc.cglib.test;
import java.util.*;
import java.io.*;
public class ReaderFile {
public static void main(String[] args) {
ReaderFile rf = new ReaderFile();
String ss[][] = rf.getArray("C:/Users/Administrator/Desktop/111.txt");// 文件路徑
System.out.println(find(ss, "價位"));
}
public static int find(String[][] ss, String str) {
if(ss==null||ss.length==0)
return -1;
boolean flag = false;
for (int i = 0; i < ss.length; i++) {
for (int j = 0; j < ss[i].length; j++) {
if(ss[i][j]==null)
continue;
if (ss[i][j].equals(str)) {
flag = true;
System.out.print(i + 1 + "\t");
System.out.println(j + 1);
}
}
}
if (flag == false) {
return -1;
}
return -1;
}
public String[][] getArray(String path) {
String[][] x = new String[15][15];
try {
Scanner sn = new Scanner(new File(path)).useDelimiter("[\\s]");
int i = 0;
while (sn.hasNextLine()) {
String[] ss = sn.next().split(" ");
System.out.println(Arrays.toString(ss));
for (int j = 0; j < ss.length; j++) {
x[i][j] = ss[j];
}
++i;
}
} catch (Exception e) {
e.printStackTrace();
}
return x;
}
}
⑼ Java編程創建一個二維數組,隨機產生0-100之間的值,求出最大值及對應下標
publicstaticvoidmain(String[]args){
intarr[][]=newint[3][3];
for(int[]is:arr){
for(inti=0;i<is.length;i++){
is[i]=(int)(Math.random()*100);
}
}
intmax=arr[0][0];
intm=0;
intn=0;
for(intis=0;is<arr.length;is++){
for(inti=0;i<arr[is].length;i++){
System.out.println("a["+is+"]"+"["+i+"]="+arr[is][i]);
if(arr[is][i]>=max){
max=arr[is][i];
m=is;
n=i;
}
}
}
System.out.println("最大值為:"+max);
System.out.println("下標為:"+m+","+n);
}
⑽ Java編程,創建一個二維數組,隨機產生 0∼100之間的值,求出最大值及對應下標
需求:Java編程,創建一個二維數組,隨機產生 0~100之間的值,求出最大值及對應下標。
分析步驟:
A:創建一個二維數組
int[][] twoArr = new int[8][8];
B: 隨機產生0~100之間的值
Random random=new Random();
random.nextInt(100);
C:將隨機產生的值賦值給數組元素
運用for循環
D:求出最大值
假設twoArr[0][0]為最大值,遍歷數組,兩兩比較,把值大的賦值給max。同時標記x,y
E:輸出最大值,輸出x,y(遍歷的兩個局部變數)值
importjava.util.Random;
classTwoArr{
publicstaticvoidmain(String[]args){
intn=8;//這里也可以改成鍵盤錄入的形式
int[][]twoArr=newint[n][n];//定義二維數組
//將隨機產生的值賦值給數組元素
for(intx=0;x<twoArr.length;x++){
for(inty=0;y<twoArr[x].length;y++){
Randomrandom=newRandom();
twoArr[x][y]=random.nextInt(100);
}
}
//求最大值和索引
intmax=twoArr[0][0];
intindex1=0;
intindex2=0;
for(intx=1;x<twoArr.length;x++){
for(inty=0;y<twoArr[x].length;y++){
if(twoArr[x][y]>max){
max=twoArr[x][y];
index1=x;
index2=y;
}
}
}
//輸出
System.out.println("最大值是:"+max+",其下標為:["+index1+"]"+"["+index2+"]");
}
}