❶ [java]从char类型数组中取其中的一段用什么方法来着
如果想转换成String的话可以用String的构造函数String(char[] value, int offset, int count)
❷ java将byte数组中的中间一部分值取出来怎么做啊
如果以这种方式存储,那么一定是定长字符串,byte[]是以字节来存储的,你直接取规则的长度就行了啊
如下:
byte[] b = new byte[10];
b[0]='a';
b[1]='b';
b[2]='c';
b[3]='d';
String a = new String(b,0,2);
用你的例子来说:比如你的标志是5位的,编号12位,日期20位,测量值10位
那么应该是
String bz = new String(b,0,5);
String bh = new String(b,5,12);
...............
以此方式解析
❸ 急!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数组。我是初学者,看视频看到数组部分,为嘛完全看不懂呢。。求解释,,
我觉得学习java之前如果你学习过C或者数据结构的话,再看起来会简单的很多
好吧我给你这个程序加上注释吧,格式是一行对应一行,你看准了,
//这个是一个java中静态方法,要求传入参数是一个整型的数组,得到的结果是一个整型的数据
//
//定义你将返回的整型变量,=arr[0],把数组的第一个元素赋值给max
//for循环,int x = 1 是指从第二个元素开始循环,条件中x<arr.length里面的arr.length是获取该数组的长度
//
//if语句的作用是如果数组中的这个元素arr[x](考循环X变化取出的数组元素)大于你数组的第一个元素(第一遍时是int max = arr[0],所以是第一个元素,第二遍就是赋值语句的作用,为上次循环里面的arr[x]所取得值)的话,就将本次循环所取得数组元素赋值给max
//循环结束
//返回在循环遍历数组所取得数组中的最大值
第二个方法的作用就是调用第一个方法,并打印返回值,在这里就不做详尽的解释了,其实你可以这样理解数组:{1,2,3,4,5,6,7}java中这个数组有7个元素,这七个元素分别一个挨着一个的组成数组这种形式的数据结构,第一个元素对应的是arr[0],第二个对应的是arr[1]..........以此往后推,java中的数组可以调用的方法你可以阅读API进行查看,.length只是获取数组长度,还有排序啊什么的,很多,在这里不一一解释。
❺ Java怎么截取字符数组的一部分
Java已经提供了实现类似功能的函数,你是要自己实现吗?
刚得空帮你写了一下,程序如下:
import java.util.Scanner;
public class CharTest {
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
if(cin.hasNext()){
String line = cin.next();
char[] cArray = line.toCharArray();
char[] afArray = getCharByMethod(cArray,2,5);
for(int i=0; i<afArray.length; i++){
System.out.println(afArray[i]);
}
}
}
private static char[] getCharByMethod(char[] a, int i, int j){
int N = a.length;
StringBuffer s = new StringBuffer(" ");
if(i>=N || j>=N || i>j){
return s.toString().toCharArray();
}
for(int x=i; x<=j; x++){
s.append(a[x]);
}
return s.toString().trim().toCharArray();
}
}
getCharByMethod这个函数就是你要的吧!你在控制台输入一串String就可以了。
❻ JAVA中如何截取数组中的一段,例如:[0,0,0,0,2,3,4,5,0,0]
int a[]={0,0,0,1,2,3,0,0};
int i=0;
while(a[i]==0){ //找到最后一个0
i++;
}
System.out.println(i);
int j=0;
int b[]= new int[a.length-i]; //用来储存新数组
for(;i<a.length;i++){
b[j]=a[i];
System.out.print(b[j]);
j++;
}
❼ java 怎么将一个数组拆分成两个数组
importjava.util.Arrays;
publicclassTest{
publicstaticvoidmain(String[]args){
String[]str={"112","2321","3231","4443","5321"};
String[]sub1=Arrays.Of(str,3);
String[]sub2=Arrays.OfRange(str,3,str.length);
System.out.println(Arrays.deepToString(sub1));
System.out.println(Arrays.deepToString(sub2));
}
}
运行结果
❽ java中怎么从一个数组中截取一定长度的元素放到新数组中
可以利用substring(int beginIndex, int endIndex)函数截取固定长度片段。
具体示例代码如下:
public class woo {
public static void main(String args[])
{
//ID为430423198211231441,截取[19821123]
char IDNum[] = {'4','3','0','4','2','3','1','9','8','2','1','1','2','3','1','4','4','1'};
String IDNum_string = String.ValueOf(IDNum);
System.out.println(IDNum_string.substring(6, 14));
}
}
(8)java数组一部分扩展阅读:
1、String类的不可变性:
这个不可变性需要看源码,String类中有几个成员变量:
private final char[] value;//存放String的值
private final int offset;
private final int count;
他们都是final类型的,当你创建一个String之后它们就无法改变,所以这个不可变指的是String的值value不可变。
2、用String的时候需要注意什么?
由于String的不可变性所以应该避免创建大量的String对象,应为大量final类型的String对象会暂用大量的内存,内存可是很宝贵的。
3、String与StringBuilder的区别:
StringBuilder进行字符串的连接等操作时不会创建新的字符串对象,所以在操作字符串的时候推荐把一个String转换为StringBuilder再进行操作,这样可以节省内存。
4、StringBuilder和StringBuffer的区别:
它俩的区别就是StringBuffer是线程安全的,它的方法都加了锁,多在多线程中使用,在单线程中建议使用StringBuilder,会更快。
❾ JAVA集合框架的数组部分
总而言之,如果你要持有一组对象,首选,同时也是效率最高的选择,应该是数组。而且,如果这是一组primitive的话,你也只能用数组。还有一些更为一般的情况,也就是写程序的时候还不知道要用多少对象,或者要用一种更复杂方式来存储对象情况。为此,Java提供了“容器类(container class)”。其基本类型有List,Set和Map。
它们还有一些别的特性。比方说Set所持有的对象,个个都不同,Map则是一个“关联性数组(associative array)”,它能在两个对象之间建立联系。此外,与数组不同,它们还能自动调整大小,所以你可以往里面放任意数量的对象。