精华内容
下载资源
问答
  • java函数返回一个数组
    千次阅读
    2021-03-04 04:36:54

    如果我的文件内容是v123我想要用readfile(string)函数读出它并复制给一个数组({1,2,3}),但是该数组无法返回。我试过吧readfile(string)改成float[][]型等等措施,可是都不成功...

    如果我的文件内容是 v 1 2 3 我想要用readfile(string)函数读出它并复制给一个数组({1,2,3}),但是该数组无法返回。我试过吧readfile(string)改成float[][]型等等措施,可是都不成功。请问我该在哪里加变量才可以赋值给main里面的float[][] b?我用的是eclipse

    public class readfile {

    public static void readfile(String filepath) {

    try {

    File file = new File(filepath);

    if (file.isFile() && file.exists()) {

    Scanner in = new Scanner(file);

    StringBuffer strbuffer=new StringBuffer("");

    while (in.hasNextLine()) {

    String str = in.nextLine();

    if (( str.indexOf("v ")) !=-1)

    strbuffer.append(str);

    }

    String[] arr1= strbuffer.substring(2).split("v ");

    float[] axi1 = new float[arr1.length];

    for

    更多相关内容
  • c++函数返回一个数组

    万次阅读 多人点赞 2018-12-13 19:39:02
    调用某个函数时经常需要函数返回一个值,我们都知道c++ 的函数返回的是一个copy,所以当只返回一个值时不会出现什么问题,直接return一个copy就行了,但是如果返回一个数组,事情就变得有趣了,我最近就遇到了这个...

    https://www.cnblogs.com/walter-xh/p/6192800.html

    ---恢复内容开始---

     

    调用某个函数时经常需要函数返回一个值,我们都知道c++ 的函数返回的是一个copy,所以当只返回一个值时不会出现什么问题,直接return一个copy就行了,但是如果返回一个数组,事情就变得有趣了,我最近就遇到了这个问题。


    先附上代码吧:

    #include<iostream>
    
    using namespace std;
    
    //函数声明
    int * fun1();
    
    int * fun2();
    
    void dispArr(int *arr ,int n);
    
    const int arrlen = 10;
    
    int main()
    {
    
        //方法一,返回局部变量的首地址
        int * arr;
        arr = fun1();
        cout << "这是方法一" << endl;
    
        dispArr(arr, arrlen);
    
        //cout << fun1()[1] << endl;//我们可以通过这样的方式将数组未被销毁的内容输出,但这样做没有意义
    
        /*方法二,在函数内部通过new动态创建数组,
         然后记得在main函数使用完数组后将其delete下*/
        cout << "这是方法二" << endl;
        int *arr1;
        arr1 = fun2();
        dispArr(arr1, arrlen);
        delete arr1;
    
        return 0;
    }
    
    //函数定义
    
    int *fun1()
    {
        int temp[arrlen];
    
        for (int i = 0; i < arrlen;++i)
        {
            temp[i] = i;
        }
    
        return temp;
    }
    
    int *fun2()
    {
        int *temp = new int[arrlen];
    
        for (int i = 0; i < arrlen; i++)
        {
            temp[i] = i;
        }
    
        return temp;
    }
    
    void dispArr(int* arr, int n)
    {
        for (int i = 0; i < n; i++)
        {
            cout << "arr" << "[" << i << "]" << " is:" <<arr[i]<<endl;
        }
    }

    这是运行结果 
    这里写图片描述

    这里是废话

    问题很简单啦,就是通过一个函数创建一个数组,然后将数组返回,并将数组里的内容打印到屏幕上。拿到这个问题,像我这样初学者首先建立的思路是,你不是要我返回一个数组吗,我就返回一个数组的首地址给你啊,然后你根据这个地址去寻址,不就可以了吗。一开始我也这么想,因为我在java里就是这么干,所以很自然就想到了,然而是错的,而且是范了很傻的错误,因为c++里的指针可不是java里的引用,c++里也没有GC(Garbage Collection),关于内存的事还得靠你自己,你自己。

    这里是精华

    错误原因:函数体内部创建的变量都是局部变量,当函数运行结束的时候,都会抛弃,也就是说你只返回了一个temp指针,这个指针确实是你想要的,这没有问题,但是它指向的内容在函数结束也就是return的那一刻之后就已经物是人非了。所以你用这个这个指针去访问的内容也不是你想要的内容了。 
    解决方法:动态内存分配,就是new和delete的配合使用。在函数里用new关键字创建一个数组,这样这块地址对应的内容就属于你管理了,再也不会在函数结束的时候被回收了,你也就可以通过返回的指针来访问数组了,最后再delete一下。

    总结一下

    千万不要返回一个局部变量的指针或引用,因为你返回也是没用的,得到的指针所指内容在函数结束后就已经变了。 
    关于c++函数返回值和参数调用想了解更多,可以点 这里 。

    展开全文
  • 主要介绍了java从输入流中获取数据并以字节数组返回,这是一个常用的方法,以后可以直接拿来用。这种输入流可以来自Android本地,也可以来自网络
  • C++函数返回一个数组

    千次阅读 2018-03-06 10:43:29
    调用某个函数时经常需要函数返回一个值,我们都知道c++ 的函数返回的是一个copy,所以当只返回一个值时不会出现什么问题,直接return一个copy就行了,但是如果返回一个数组,事情就变得有趣了,我最近就遇到了这个...

    调用某个函数时经常需要函数返回一个值,我们都知道c++ 的函数返回的是一个copy,所以当只返回一个值时不会出现什么问题,直接return一个copy就行了,但是如果返回一个数组,事情就变得有趣了,我最近就遇到了这个问题。


    先附上代码吧:

    #include<iostream>
    
    using namespace std;
    
    //函数声明
    int * fun1();
    
    int * fun2();
    
    void dispArr(int *arr ,int n);
    
    const int arrlen = 10;
    
    int main()
    {
    
        //方法一,返回局部变量的首地址
        int * arr;
        arr = fun1();
        cout << "这是方法一" << endl;
    
        dispArr(arr, arrlen);
    
        //cout << fun1()[1] << endl;//我们可以通过这样的方式将数组未被销毁的内容输出,但这样做没有意义
    
        /*方法二,在函数内部通过new动态创建数组,
         然后记得在main函数使用完数组后将其delete下*/
        cout << "这是方法二" << endl;
        int *arr1;
        arr1 = fun2();
        dispArr(arr1, arrlen);
        delete arr1;
    
        return 0;
    }
    
    //函数定义
    
    int *fun1()
    {
        int temp[arrlen];
    
        for (int i = 0; i < arrlen;++i)
        {
            temp[i] = i;
        }
    
        return temp;
    }
    
    int *fun2()
    {
        int *temp = new int[arrlen];
    
        for (int i = 0; i < arrlen; i++)
        {
            temp[i] = i;
        }
    
        return temp;
    }
    
    void dispArr(int* arr, int n)
    {
        for (int i = 0; i < n; i++)
        {
            cout << "arr" << "[" << i << "]" << " is:" <<arr[i]<<endl;
        }
    }

    这是运行结果 
    这里写图片描述

    这里是废话

    问题很简单啦,就是通过一个函数创建一个数组,然后将数组返回,并将数组里的内容打印到屏幕上。拿到这个问题,像我这样初学者首先建立的思路是,你不是要我返回一个数组吗,我就返回一个数组的首地址给你啊,然后你根据这个地址去寻址,不就可以了吗。一开始我也这么想,因为我在java里就是这么干,所以很自然就想到了,然而是错的,而且是范了很傻的错误,因为c++里的指针可不是java里的引用,c++里也没有GC(Garbage Collection),关于内存的事还得靠你自己,你自己。

    这里是精华

    错误原因:函数体内部创建的变量都是局部变量,当函数运行结束的时候,都会抛弃,也就是说你只返回了一个temp指针,这个指针确实是你想要的,这没有问题,但是它指向的内容在函数结束也就是return的那一刻之后就已经物是人非了。所以你用这个这个指针去访问的内容也不是你想要的内容了。 
    解决方法:动态内存分配,就是new和delete的配合使用。在函数里用new关键字创建一个数组,这样这块地址对应的内容就属于你管理了,再也不会在函数结束的时候被回收了,你也就可以通过返回的指针来访问数组了,最后再delete一下。

    总结一下

    千万不要返回一个局部变量的指针或引用,因为你返回也是没用的,得到的指针所指内容在函数结束后就已经变了。 

    展开全文
  • java方法怎么返回数组

    千次阅读 2021-02-12 10:50:18
    java方法返回数组的方法:在方法前添加int[]即可返回维的整型数组。如果在方法前添加int[][],则可以返回二维的整型数组。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多...

    java方法返回数组的方法:在方法前添加int[]即可返回一维的整型数组。如果在方法前添加int[][],则可以返回二维的整型数组。

    825551a0ca1dcaf230930044ef49d50a.png

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

    (推荐教程:java课程)

    java返回数组的方法

    如果方法返回整数,则必须在声明时在方法的前面加上int 关键字。相反的如果返回的是一维的整型数组,则必须在方法的前面加上int[]。若是返回二维的整型数组,则加上int[][],以此类推。public class JavaTest1

    {

    public static void main(String[] agrs)

    {

    int a[][]={{2,1,3,6,9},{27,18,34}};

    int b[][];

    System.out.println("The array a is");

    showArray(a);

    b=addArray(a);

    System.out.println("The array b is");

    showArray(b);

    }

    public static int[][] addArray(int[][] a)

    {

    for(int i=0;i

    {

    for(int j=0;j

    {

    a[i][j]++;

    }

    }

    return a;

    }

    public static void showArray(int[][] a)

    {

    for(int i=0;i

    {

    for(int j=0;j

    展开全文
  • C/C++中,函数返回一个数组方法(转)

    千次阅读 2018-07-15 21:45:42
    Java语言的函数可以轻易的返回一个数组,而C/C++却不能直接返回一个数组。这是由于在C/C++中,数组不是一种类型,因此不能被直接返回。 在C/C++中,一般有两种方法来返回一个数组。第一种方法: 返回一个指向数组...
  • 需求:构造方法,可以支持返回任意整型数组的最大值数据。 package com.europeansheik.test; /** * 需求:构造方法,可以支持返回任意整型数组的最大值数据。 */ public class test { public static void main...
  • Java调用C语言动态库(JNA方式):回调函数、结构体数组传参、结构体数组返回-附件资源
  • java代码-定义一个一维数组,求出数组的最大值,最小值,平均值
  • JAVA--方法(函数)数组

    2021-02-25 20:29:22
    概念:方法,也叫函数,但是一般在java中都叫方法,可以看成是一个可以完成独立功能的代码块,可以反复使用,每次使用都是独立的!存在于类的结构体1) X + Y = Z;代入不同的值,可以求到不同的结果2) 函数可以反复...
  • import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 将给定数组排序 * @param arr int整型数组 待排序的数组 * @return ...
  • public class 类名{ public static void main... //定义一个数组变量接收a对象调用的方法 System.out.println("和 = " + res[0]); System.out.println("差 = " + res[1]); } } class AA{ public int
  • JAVA中 方法如何返回一个二维数组

    万次阅读 2017-11-08 14:46:22
    public static int[][] getPrimeFactors(int number) { int[][] array; //some statements return array;//返回一个名为array的二维数组(int) } 重点是 类型写 int[][] 然后最后返回数组
  • 在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。 重载的特点: 与返回值类型无关,只看参数列表。 重载的好处: 方便于阅读,优化了程序设计。 重载示例: //返回两个...
  • ```public class Demo18 { public static void main(String[] args) { int [] arr= {14,66,43,19,90}; int max=getMax(arr); System.out.println("最大值:"+max); } public static int getMax(int [] arr...
  • 本文主要向大家介绍了JAVA语言实现随机返回字符串数组中的字符串,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。//随机返回字符串数组中的字符串publicstaticStringRandomStr(String[]strs){int...
  • Java将两个数组合并成一个新的数组

    千次阅读 2020-07-04 17:53:04
    } else { /** * 循环变量 i 的值大于 arr.length 时,此时新数组下标 i 必定大于brr.length * 继续循环将brr中的元素赋值给新数组 */ if (i > brr.length) { buildArray[i] = brr...
  • 我有一个我通过JNI访问的本机函数,需要将数组的内容返回java.我的函数原型如下:JNIEXPORT jcharArray JNICALL Java_jniusb_Main_receiveData(JNIEnv *, jclass, jchar);这是用javah.exe生成的.所以在函数的代码中...
  • 展开全部packagecom.golden.servlet.util;importjava.util.Arrays;publicclassTest{publicstaticvoidmain(String[]args){Stringstr="1,2;3,4,5;6,7,8;9";for(double[]ds:parseDoubleArray(str)){Syste...
  • java获取数组最大值的函数,超详细

    千次阅读 2021-06-17 13:35:27
    最近老是收到小伙伴的私信问我能不能帮忙整理出份JVM相关的面试题出来,说自己在大厂去面试的时候这块问的是特别多的,每次自己学的时候每次都学不到重点去。这不他来了,份详细的JVM面试真题给大家整理在下方...
  • 使用下面的方法头编写方法,消除数组中重复出现的值并返回该新数组: public static int[] eliminateDuplicates(int[] list) public static int[] eliminateDuplicates(int[] list){ int[] list_1; int count =...
  • java中两byte数组实现合并的示例

    千次阅读 2020-12-19 16:55:59
    java中两byte数组实现合并的示例今天在于硬件进行交互的过程中,要到了了需要两个数组进行合并,然后对数组进行反转和加密操作,以下是两byte数组合并的方法。/**** @param data1* @param data2* @return data1 与 ...
  • java一数组求和

    千次阅读 2021-03-13 05:48:52
    publicclassHello{publicstaticvoidmain(String[]args){//建立一个50元素组成的数组把1-100的所有偶数放在数组里并显示int[]a=newint[50];intj=2;for(inti=0;ia[i]=j;j+=2;}System.out.println("该数组所有元素为:...
  • Java中如何把两个数组合并为一个

    千次阅读 2021-03-08 23:30:05
    Java中,如何把两个String[]合并为一个?看起来是一个很简单的问题。但是如何才能把代码写得高效简洁,却还是值得思考的。这里介绍四种方法,请参考选用。一、apache-commons这是最简单的办法。在apache-commons中...
  • 第一种:依次与有序数组中的每个数进行比较,然后找到位置之后,定义一个新的数组,该信数组的长度加一,再使用system.arraycopy将于数组copy到新数组!import java.util.Arrays;import java.util.Scanner;public ...
  • 定义一个方法传入一个 int 类型数组,输出这个数组中每一个数字及其出现的个数 例如 传入数组[1,2,2,2,3,3,4,4,4,4] 打印结果: 数字 1 出现了 1 次 数字 2 出现了 3 次…
  • java8-lambda操作数组、集合

    千次阅读 2021-02-26 20:53:17
    简介“Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包...
  • 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入:strs = ["flower","flow","flight"] 输出:"fl" 示例 2: 输入:strs = ["dog","racecar","car"] 输出...
  • Java使用split方法返回String数组

    千次阅读 2020-08-11 17:01:39
    Java使用split方法返回String数组 题目描述 将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I” 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符 输入:I ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 418,197
精华内容 167,278
关键字:

java函数返回一个数组