Tag: 数组

如何在main中的所有声明对象中只选择一次该数组中的随机元素?

我希望这些对象在main中声明的所有对象中只在数组中打印一次随机名称。 我的问题是,它会显示两次或更多的名称。 public class Fighters { private static String[] names = { “Terminator”, “Slicer”,”Ninja”, “cow”, “Robot”, “littlegirl” }; private static int id = 0; public Fighters(){ id++; name = names[(int) (Math.random() * names.length)]; } public String toString(){ return String.format(id+” Name:%-5s, name); } } 在main()我有这些对象 Fighters a1 = new Fighters(); System.out.println(a1.toString()); Fighters a2 = new Fighters(); […]

如何获取循环中生成的char值的总和?

对不起,如果标题有误导性或令人困惑,但这是我的困境。 我正在输入一个字符串,并希望为字母表中的每个大写字母分配一个值(A = 1,.. Z = 26),然后在该字符串中添加每个字母的值。 示例: ABCD = 10(自1 + 2 + 3 + 4) 但我不知道如何在字符串中添加所有值 注意 :这仅适用于大写字母和字符串 public class Test { public static void main(String[] args) { Scanner scannerTest = new Scanner(System.in); System.out.println(“Enter a name here: “); String str = scannerTest.nextLine(); char[] ch = str.toCharArray(); int temp_integer = 64; for (char c […]

java将列表字符串写入csv文件

我有一些像下面这样的数组字符串(注意每个播放器后面有空格显示不同的行…), [“user1″,”track1″,”player1”, “user1″,”track2″,”player2”, “user1″,”track3″,”player3”, …] 我想根据行数(这里是空格)将这个数组分成两部分(几乎相等)。 所以,例如,如果这个数组中有40个空格,我需要将从第一行到第二行(第20行)的行存储在一个文件中(让我们称之为文件A)并将其余部分放在文件B中。我可以划分arraylist,但我无法在CSV文件中以正确的方式编写它。 这是我的代码: public static void main(String[] args) throws java.lang.Exception { BufferedReader userlines = new BufferedReader(new FileReader(“/…./usertrackplayer.csv”)); FileWriter output = new FileWriter(new File(“/…/output.csv”)); String uLine = null; ArrayList list = new ArrayList(); List arrayList = new ArrayList(); String currentUserId = null; while ((uLine = userlines.readLine()) != null) { String[] userData […]

大小未知的多维数组

我需要创建一个具有未定义大小的数组,该数组将包含用户信息。 例如: user[0][“name”] = “Patrick”; 但是,标准的java数组似乎需要一个已知的长度,我不知道。 我可以使用哪种替代方案? (我很乐意看到一些编码示例)我正在使用TCP框架( kryonet ),它不允许使用构造函数传递对象。 因此,据我所知,制作用户对象是不可能的。

在java中生成唯一的随机数

我想生成从1到9的随机数,我希望它们是唯一的。 这是我写的代码,它给了我9个不同的数字,从1到9,但我不知道生成唯一的数字。 int data[] = new int[10]; for(int i = 0; i < data.length; i++) { Random randomGenerator = new Random(); data[i] = randomGenerator.nextInt(10); System.out.println(data[i]); }

在某个INPUT值之后获取ArrayIndexOutOfBoundsException

对于在输入值为46348之后的给定下面的代码,我得到ArrayIndexOutOfBoundsException 。 我在for循环中给出了条件, 以保持数组限制。 但不知怎的,我得到了这个例外,我无法弄明白。 我的要求是找到给定数字以下的所有主数字。 Scanner sc = new Scanner(System.in); int n= sc.nextInt(); int[] arr= new int[n+1]; for(int i=2;i<=n;i++) { if(arr[i]==0) { for(j=i;j*i<=n;j++) arr[j*i]=1; // Here i am getting Exception } } 输入: 46349 输出: java.lang.ArrayIndexOutOfBoundsException:-2146737495 502802 谢谢。,

Android数组无法解析或不是字段

我的程序中有以下代码段: ArrayAdapter dataAdapter = ArrayAdapter.createFromResource( this, R.array.datatypes, android.R.layout.simple_spinner_item); ArrayAdapter timeAdapter = ArrayAdapter.createFromResource( this, R.array.timetypes, android.R.layout.simple_spinner_item); 我在“R.array”上收到错误,表明数组无法解析或不是字段。 这是很久以前的工作,我不确定我有什么。 我尝试过包括“com.throughputconverter.R”以及多次清理和重建。 我也重启了eclipse。 任何帮助,将不胜感激。 谢谢

变量必须提供维度表达式或数组初始值设定项错误

出于测试目的,我硬编码了一个bean数组,因此我可以将变量传递给数据库。 我现在从表单中提取变量,并且如果它们不为null,则希望在bean数组中设置它们。 我认为我的语法错了。 硬编码: CriteriaBean[] filters = new CriteriaBean[] { new CriteriaBean(“YEAR”,”=”,”2012″), new CriteriaBean(“LOCATION”,”in”,”(‘XXX’,’YYY’)”), new CriteriaBean(“TOM”,”is”,”not null”) }; 我试图做这样的事情并得到错误: CriteriaBean[] filters = new CriteriaBean[] { if (form.getYear() != null) { new CriteriaBean(“YEAR”,”=”,”2012″) } }; CriteriaBean public class CriteriaBean { public static final CriteriaBean[] EMPTY_ARRAY = new CriteriaBean[0]; private String fieldName; private String value; private String […]

有没有办法让Java中的普通数组不可变?

用Google搜索,找到了大量的代码。 但是他们中的任何一个都给了我想要的东西。 我想制作一个普通的数组永恒。 我试过这个: import java.util.ArrayList; import java.util.Collections; import java.util.List; public class test { public static void main(String[] args) { final Integer array[]; List temp = new ArrayList(); temp.add(Integer.valueOf(0)); temp.add(Integer.valueOf(2)); temp.add(Integer.valueOf(3)); temp.add(Integer.valueOf(4)); List immutable = Collections.unmodifiableList(temp); array = immutable.toArray(new Integer[immutable.size()]); for(int i=0; i<array.length; i++) System.out.println(array[i]); array[0] = 5; for(int i=0; i<array.length; i++) System.out.println(array[i]); } } […]

java方法使用循环将元素与数组相乘

定义一个名为weightedSum()的Java方法,它接受两个整数数组作为参数。 该方法使用循环将两个数组的相应元素相乘(即,将每个数组的第一个参数相乘,然后将每个数组的第二个元素相乘,依此类推)并返回这些数组的总和(这也是一个整数)。 您可以假设两个数组的长度相等。 public int weightedSum(int [] a ,int [] b) { int value; int sum ; for (int i = 0 ; i < a.length ; i++) { value = a[i] * b [i]; value = value +value ; } return value; 我无法为我的作业编写此方法。 我支持它接受数组,但是我在编写循环本身时遇到了麻烦,因此它将数组的每个单独元素与相反数组中的对应元素相乘,因此pos [1] * pos [1]然后添加两个值与pos [2] + pos [2]合并并得到所有值的总和