实时搜索: java数组截取前几个

java数组截取前几个

675条评论 6587人喜欢 6092次阅读 508人点赞
用java如何实现将一些数字分割成每三个一对然后存入数组中
如:stringstr=“123648945819399529....”
把以上这个字符串分割成三个一组(123
648 945 819 399 )存入数组中 , java
编程实现一个方法,由参数给定一个字符串,统计并输出在该字符串中每个字符出现的次数。方法原型为:void countChar(String str) , package array;
public class array{
public static void main(String [] args)
{

Java如何找出数组中前k个高频元素: public static void main(String[] args) {
//定义并初始化数组
int[] arr = {22,33,44,55,66,7,2,5,24};
//定义并初始化Scanner对象,用于获取输入键盘输入的内容
Scanner scanner = new Scanner(System.in);
//输出信息
System.out.print("请输入需要查找的数字:");
//获取键盘输入要查找的数字
int target = scanner.nextInt();
//循环数组
for(int i = 0; i < arr.length; i++) {
//如果输入的数字跟当前数组的元素的值相同
if(target == arr[i]) {
//输入所在位置,从1开始
System.out.println(target + "位于数字的第" + (i + 1) + "位");
//结束
return;
}
}
//如果找不到的话就提示一下
System.out.println("数组中不存在数字:" + target);
}

用java如何实现将一些数字分割成每三个一对然后存入数组中 如:stringstr=“123648: 使用subString(int beginIndex,int endIndex)方法获取子串,

比如stringstr.subString(0,2)就是得到前三个数字了

java编程实现一个方法,由参数给定一个字符串,统计并输出在该字符串中每个字符出现的次数。(用数组方法):

不好意思,没看清题目,使用数组,修改代码如下,原来的也保留,供参考:



private String[] chars; // 记录字符
private int[] count; // 记录总数

public void countChar(String str) {
// 初始化数组:这里数组长度,使用字符串长度,但实际可能用不上,因为字符串中可能重复
// 不想使用动态数组,比较麻烦,先演示
// 最好使用List,比数组方便
chars = new String[str.length()];
count = new int[str.length()];

for (int i = 0; i < str.length(); i++) {
// 判断字符是否存在
for (int idx = 0; idx < chars.length; idx++) {
if (chars[idx] == null) {
chars[idx] = str.substring(i, i + 1); // 截取1个长度
count[idx] = count[idx] + 1;
break;
}
if (chars[idx].equals(str.substring(i, i + 1))) {
count[idx] = count[idx] + 1;
break;
}
}
}

// 输出结果
for (int i = 0; i < chars.length; i++) {
if (chars[i] != null)
System.out.println("字符[" + chars[i] + "]出现次数:" + count[i]);
}

}

public static void main(String[] args) {
// 测试方法
LetterCount test = new LetterCount();
test.countChar("Adfasadfadaere你你好好");
}
}


原代码如下,有注释,请参考:

import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class LetterCount {
// 统计结果用,采用Character即char做键(Key)
private Map<Character, Integer> countMap = new HashMap<Character, Integer>();

public void countChar(String str) {
char[] chars = str.toCharArray();// 将字符串转换成字符char数组
// 循环,开始统计
for (char ch : chars) {
// 判断字符是否存在
if (!countMap.containsKey(ch)) {
// 不存在,在Map中加一个,并设置初始值为0
countMap.put(ch, 0);
}
// 计数,将值+1
int count = countMap.get(ch);
countMap.put(ch, count + 1);
}

// 输出结果
Set<Character> keys = countMap.keySet();
for(Character ch : keys){
System.out.println("字符" + ch + "出现次数:" + countMap.get(ch));
}

}

public static void main(String[] args) {
// 测试方法
LetterCount test = new LetterCount();
test.countChar("Adfasadfadaere"); // 注:不支持中文
}
}

亲,如果回答满意,请即时采纳,你的采纳是我回答的动力,谢谢!

急!JAVA中如何实现将数组的部分值赋给另一个数组?: 看了下楼主你的代码,我感觉你没有实现将重复数存入另一数组的功能,而且有的地方很不符合实际,比如if ((array[i]>0)&&(array[i]<=7)) 就限定了数组里的数必须是大于0小于等于7,相当于限定死了数组,一点都不具有通用性。我自己给你写了下,基本上满足了你的要求:
public class ArrayTest {
public static void main(String[] args) {
ArrayTest at = new ArrayTest();
int[] array = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
Integer[] arr = at.getArray(array);
for(int i=0,n=arr.length;i<n;i++){
System.out.print(arr[i].intValue()+" ");
}
}
//返回重复数和0
public Integer[] getArray(int[] array){
//存放重复的数和0
ArrayList<Integer> list = new ArrayList<Integer>();
//将List保存的数据存入Integer数组里
Integer[] temp = null;
for(int i=0,n=array.length;i<n-1;i++){
//第二个for循环用于检查array[i]是否与之后的数相同,如果相同就存入list
for(int j=i+1;j<n;j++){
temp = new Integer[list.size()];
//如果数组当前位置array[i]的数为0并且list里没有保存它时,将0存入list
if(array[i]==0&&!inArray(array[i],list.toArray(temp))){
list.add(array[i]);
}else{
if(array[i]==array[j]&&!inArray(array[i],list.toArray(temp))){
list.add(array[i]);
}
}
}
}
temp = new Integer[list.size()];
return list.toArray(temp);
}
//检测指定的数是否之前已经被保存过
private boolean inArray(int i,Integer[] array){
if(array.length == 0||array == null){
return false;
}else{
for(int j=0,k=array.length;j<k;j++){
if(i == array[j].intValue()){
return true;
}
}
return false;
}
}
}

用你提供的数据可以输出“4 5 0 6 7”,并且对任意整型数组都可以实现功能,这是完整的类,你可以复制到IDE里去测试一下。

java数组的Arrays.copyOf(arr1, 4); Arrays.copyOfRange(arr1, 1, 4); 到底怎么工作的,不懂啊??:

copyOf

public static int[] copyOf(int[] original,

                          int newLength)

复制指定的数组,截取或用 0
填充(如有必要),以使副本具有指定的长度。对于在原数组和副本中都有效的所有索引,这两个数组将包含相同的值。对于在副本中有效而在原数组无效的所有索引,副本将包含
0。当且仅当指定长度大于原数组的长度时,这些索引存在。

参数:

original - 要复制的数组

newLength - 要返回的副本的长度

返回:

原数组的副本,截取或用 0 填充以获得指定的长度

抛出:

NegativeArraySizeException
- 如果 newLength 为负

NullPointerException
- 如果 original 为 null

从以下版本开始:

1.6 


copyOfRange

public static int[] copyOfRange(int[] original,
                               int from,
                               int to)

将指定数组的指定范围复制到一个新数组。该范围的初始索引 (from) 必须位于 0 和
original.length(包括)之间。original[from] 处的值放入副本的初始元素中(除非 from
== original.length 或 from == to)。原数组中后续元素的值放入副本的后续元素。该范围的最后索引
(to)(必须大于等于 from)可以大于
original.length,在这种情况下,0 被放入索引大于等于 original.length -
from 的副本的所有元素中。返回数组的长度为 to - from。

参数:

original - 将要从其复制一个范围的数组

from - 要复制的范围的初始索引(包括)

to - 要复制的范围的最后索引(不包括)。(此索引可以位于数组范围之外)。

返回:

包含取自原数组指定范围的新数组,截取或用 0 填充以获得所需长度

抛出:

ArrayIndexOutOfBoundsException
- 如果 from < 0 或 from > original.length()

IllegalArgumentException
- 如果 from > to

NullPointerException
- 如果 original 为 null

从以下版本开始:

1.6 

怎么将java字符串带有,号分隔为一个数组: 比如字符串为String str = "a,b,c,d,e,f";
则要根据","将str分隔为一个数组的代码为
String [] arr = str.split(",");
arr就是分隔后的数组了。

Java中如何把两个数组合并为一个: java数组合并问题

三种字符数组合并的方法

public static String[] getOneArray() {
String[] a = { "0", "1", "2" };
String[] b = { "0", "1", "2" };

String[] c = new String[a.length + b.length];

for (int j = 0; j < a.length; ++j) {
c[j] = a[j];
}

for (int j = 0; j < b.length; ++j) {
c[a.length + j] = b[j];
}

return c;
}

public static Object[] getTwoArray() {
String[] a = { "0", "1", "2" };
String[] b = { "0", "1", "2" };

List aL = Arrays.asList(a);
List bL = Arrays.asList(b);

List resultList = new ArrayList();
resultList.addAll(aL);
resultList.addAll(bL);

Object[] result = resultList.toArray();
return result;
}

public static String[] getThreeArray() {
String[] a = { "0", "1", "2", "3" };
String[] b = { "4", "5", "6", "7", "8" };
String[] c = new String[a.length + b.length];
System.arraycopy(a, 0, c, 0, a.length);
System.arraycopy(b, 0, c, a.length, b.length);
return c;
}

1.两个字符数组合并的问题

public String[] getMergeArray(String[] al,String[] bl) {
String[] a = al;
String[] b = bl;
String[] c = new String[a.length + b.length];
System.arraycopy(a, 0, c, 0, a.length);
System.arraycopy(b, 0, c, a.length, b.length);
return c;
}

2.字符数组和整形数组合并问题

public int[] getIntArray(int[] al,String[] bl) {
int[] a = al;
String[] b = bl;

int[] ia=new int[b.length];
for(int i=0;i<b.length;i++){
ia[i]=Integer.parseInt(b[i]);
}

int[] c = new int[a.length + ia.length];
System.arraycopy(a, 0, c, 0, a.length);
System.arraycopy(ia, 0, c, a.length, ia.length);
return c;
}

java 如何获取set数组的长度: 看下JAVA API里面的喽.
List里面的size() 返回此列表中的元素数 .
Map里面的size() 返回此映射中的键-值映射关系数。
set里面的size() 返回 set 中的元素数(其容量)。

  • fgo盾兵有几个

    什么是入龙珠: 所谓入珠,简单的说,就是将珠子植入男性阴茎皮下组织,待其伤口愈合,勃起时,凸出于阴茎表面。早期兄弟又称为“入龙珠”其含意是指“在监”时植入者。以往入珠者,大都是道上兄弟,行船人,午夜牛郎,现在层次己较以往普及,打从上...

    210条评论 4494人喜欢 4245次阅读 842人点赞
  • 21英语怎么写

    捷达车为什么这么贵,8万多: 因为欧洲品牌的车就是贵,但贵有贵的好处。同样级别的车,日韩的就便宜,或者他们的配置高,但是欧洲车就贵,尤其是德国品牌。普桑是目前大众在中国最便宜的车了,但也要六七万,捷达要7万多,相比较其他品牌,大众这两款车就显的老...

    236条评论 2251人喜欢 2692次阅读 298人点赞
  • 五指山在哪个市

    CF的最好设置是什么?: 关于CF,职业配置一、鼠标篇 由于不同的使用习惯,我们针对3种基本的枪械射击习惯推荐不同类型的鼠标产品。由于无法列举所有使用习惯,大家请根据3种基本情况中的要素组合得到自己适合的鼠标产品。   需要特别提醒大...

    325条评论 3078人喜欢 2457次阅读 441人点赞
  • maca怎么吃

    cf八周年戒指那个戴在食指上: cf8周年戒指属性图介绍:8周年戒指(穿越)属性:死神,攻击成功时准星发生变化。8周年戒指(火线)属性:鹰眼,可标记出攻击自己的玩家。和龙戒一样 ...

    971条评论 6645人喜欢 4128次阅读 241人点赞