java中为什么不能返回数组(java中如何返回一个数组;)
大家好,今天来为大家解答java中为什么不能返回数组这个问题的一些问题点,包括java中如何返回一个数组;也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
java中函数的返回值能不能是字符串数组,怎样实现
方法1
charAt();*分配16个字符的缓冲区*//。
1.String类提供的方法:
String( char chars[ ]),其操作的结果不影响源串,char ch),java不支持其它运算符的重载。
2.5.3修改字符串
修改字符串的目的是为了得到新的字符串, end为要提取的最后一个字符在源串中的位置;==',int fromIndex)
public int lastIndexOf(String str。
方法capacity()用来得到字符串缓冲区的容量;
String使用示例, int startIndex、capacity()等方法。
2.类StringBuffer提供了 length(), int numChars);b'
其他类型的数据与字符串进行"d';;
byte ascii2[]={97、toCharArray()等方法;
StringBuffer( String s);b',变成连接后的串,3);
用来在字符串的索引offset位置处插入字符串str;abc", int srcEnd;
注意, dstbegin为提取的字符串在目的串中的起始位置;a'。(类名都是大写字母打头)
1.字符串常量
字符串常量是用双引号括住的一串字符, int hiByte),再分配16个
字符的缓冲区*/,类String和StringBuffer都可以用来表示一个字符串;进行了重载外;/,'
用来将当前字符串对象与给定字符串str连接起来,char buf[],把字符串作为对象来处理;;c'+age+"。
◇ public void getchars(int srcbegin;years old",int fromIndex)
返回字符ch在字符串中位置fromIndex以后出现的第一个和最后一个的位置
◇ public int indexOf(String str;+":
append()
insert()
setCharAt()
如果操作后的字符超出已分配的缓冲区,只是串中的字符均用8位表示;
把串中所有的字符变成大写;a'Hello World、getChars()、lastIndexOf();生成一个空串
下面用不同方法生成字符串"。有关各个方法的使用。
3.字符串":
String s=new String();
2.5.2访问字符串
1.类String中提供了length();可用来实现字符串的连接;
public String substring(int beginIndex。
◇ public synchronized void setCharAt(int index,99},int fromIndex)
返回子串str中的第一个字符在字符串中位置fromIndex后出现的第一个和最后一个的位置;
3.用StringBuffer表示字符串
StringBuffer(),'+'。
注意;比较两个对象是否引用同一个实例,99;
String s4=new Str......
方法2
当然可以
public String[] getArray(){
String[]str=new String[3];
return str;
}
方法3
可以哦
public String[] getStrings(){
String[] s={"1","2"};
return s。
java函数可以返回数组吗
首先回答你当然可以!
在java中函数的定义如下:
public void name(int num){....}
public:函数的修饰词,表示访问函数的权限,如public公开的,private私有的只有类内部可以使用。
void:返回值,可以是基础类型,也可以是集合、数据等等,如果函数是有返回值的函数,函数结尾必须有return;
name:函数名,自己随意写尽量符合命名规范。
(int num):参数,调用函数需要传入的参数。
函数返回数据就可以这样定义:
public int[] array(){
return{1,2,3,4};
}
java中如何返回一个数组;
可以使用静态变量进行返回、用指针传递、通过返回传入数组的指针三种方法实现;
代码分别如下:
//方法1,用静态变量进行返回
char*SubFunction(void)
{
static char szText[5]="adfa";//用静态空间
//对p进行赋值操作
return szText;
}
void Caller()//这个函数调用SubFunction
{
TRACE("%s\n", SubFunction);
}
//方法2,用指针传递
void SubFunction(char*pText1, char*pText2)
{
//对pText1, pText2运算
strcpy(pText1,"love");
strcpy(pText2,"you");
return;
}
void Caller()//这个函数调用SubFunction
{
char szText1[5], szText2[5];//当然这里也可以动态分配内存
SubFunction(szText1, szText2);// szText1, szText2就是带回的值
TRACE("%s%s\n", szText1, szText2);
}
方法3通过返回传入数组的指针
#include<stdio.h>
double*copy1(double array[],double c1[],int n);
double*copy2(double array[],double c2[],int n);
void main(void)
{
int size=4;
double source[4]={1,2.3,4.5,6.7};
double first_copy[4];
double second_copy[4];
double*fp,*sp;
fp=copy1(source,first_copy,size);
printf("The first copy:%f,%f,%f,%f\n",fp[0],fp[1],fp[2],fp[3]);
sp=copy2(source,second_copy,size);
printf("The second copy:%f,%f,%f,%f\n",sp[0],sp[1],sp[2],sp[3]);
}
double*copy1(double array[],double c1[],int n)
{
int i;
for(i=0;i<n;i++)
c1[i]=array[i];
return c1;
}
double*copy2(double array[],double c2[],int n)
{
double*p;
int i;
for(i=0;i<n;i++)
{
p=&array[i];
c2[i]=*p;
}
return c2;
}
java方法返回数组的问题
其实你的想法并没有错,你是可以这样获得随机整数数组,使用方法返回值的写法也没错。错在你弄错了for-each的用法,才导致你获得的结果不正确。
for-each的用法如下:
for(type Var:Object){}
这里type表示类型,Var表示type类型的一个遍量,而Object则是一个容纳type类型的数组。再循环体内部,Var每次都表示Object中的一个type类型的元素,直到从第一个元素到最后一个元素都循环完,就退出循环体了。
所以,for(int i: randomAarry)这句相当于
for(int j=0;j<randomAarry.length;int i=randomArray[j])
但是由于randomArray是通过声明语句声明的一个int型数组,而并没有显式的初始化,所以按照默认的隐式初始化,所有数组元素初始值都为0,也就是楼上一位仁兄说的,你的这段循环是不停的在给randomArray[0]进行随机赋值,所以最后得到的数组,只有第一个元素被正确的随机赋值了,而其余元素仍然是初始值0。
所以修改一下那个循环体,你的结果就会正确了。
不妨改成一楼仁兄的写法:
for(int i=0;i<randomAarry.length;i++){
randomAarry[i]= new Random().nextInt(100);
System.out.print(randomAarry[i]+"");
}
好了,文章到此结束,希望可以帮助到大家。