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人点赞
最新热搜榜单
随机推荐榜单
- 如果其中的前m个数按从小到大的顺序排列,找出m,然后输出这 m 个数。
- 《侠盗猎车手GTA4》免安装中文汉化硬盘版
- 脚背正面踢球动作要领步骤(5步)有哪些?
- 隐hui是什么,,hui字
- PS中索引颜色模式如何减少颜色表中的颜色
- get rid of 中的RID是动词吗,GET也是动词啊,后面怎么可以再跟动词呢?
- 没人相信的男孩阅读答案
- 洗发水coco莎丽丝多少钱一瓶
- 现有深圳到容桂轻轨吗 大概最晚几点
- 上海官辛电子科技有限公司怎么样?
- 我身高1米52 18岁 宽脸 请问适合什么发型 去好多理发店说卷发能...
- 公卫医师资格考试多少分及格2014
- the weeknd在维密唱的什么歌曲和2018演唱会香港
- 枪神纪女双枪的命运蔷薇好吗,打pvp怎么样,如果不行,那应该选择什么武器,昨天买了女双枪,发现那武
- 圆通快递查询单号没有γT910449559222?
- 为什么在交流电下电灯会一闪一闪?(在理论上)
- 为什么手机版穿越火线玩家图片加载失败?
- 在word 中,如何将数字27倒过来,跟文字同一个方向?
- 上海的边牧怎么运回家
- 心情不好时,总会梦到死去的人!为什么?