String[]和Array数组之间可以相互转换吗?有什么区别和联系呢? 急急急:怎样将一个String[]数组转换为String字符...

\u600e\u4e48\u8fdb\u884c\u4e8c\u7ef4\u6570\u7ec4\u548cString\u7684\u4e92\u76f8\u8f6c\u6362

package test;

public class ArrayToStringTest {
public static void main(String[] args) {
int[][] array = new int[4][4];
int count = 0;
ArrayToStringTest test = new ArrayToStringTest();

// \u8d4b\u503c\u4e00\u4e2aint[][]
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
array[i][j] = count;
++count;
}
}

// \u83b7\u53d6row,col
int row = test.getRow(array);
int col = test.getCol(array);

// \u8f6c\u4e3aString
String str = test.convertToString(array, row, col);
System.out.println(str); // 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,

//\u8f6c\u4e3aint[][]
int[][] arrayConvert = new int[row][col];
arrayConvert = test.convertToArray(str, row, col);
}

public int getRow(int[][] array) {
int row = 0;
if (array != null) {
row = array.length; // \u884c
}
return row;
}

public int getCol(int[][] array) {
int col = 0;
if (array != null) {
col = array[0].length; // \u5217
}
return col;
}

public String convertToString(int[][] array, int row, int col) {
String str = "";
String tempStr = null;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
tempStr = String.valueOf(array[i][j]);
str = str + tempStr + ",";
}
}
return str;
}

public int[][]convertToArray(String str, int row, int col){
int[][]arrayConvert = new int[row][col];
int count = 0;
String[] strArray = str.split(",");
for(int i = 0 ; i < row ; i ++){
for(int j = 0 ; j < col ; j ++){
arrayConvert[i][j] = Integer.parseInt(strArray[count]);
++ count ;
}
}
return arrayConvert;
}
}

String[] strArray = new String[10];
String strNew = String.Empty;
for (int index = 0; index < strArray.Length; index++)
{
strNew += strArray[index];
}

我不知道你为什么要考虑将两者之间相互转换,首先是两者之间的转换是可行的,但是两者之是的转换是无意义的。

两者之间的区别,在msdn上说,array是实现数组的基础。虽然有这一句话,但不非是所有的其他数组都从该数组基础上继承的。两者在使用上可以说基本上是没有任何关系的。

首先说string[],它表示由字符串构成的数组,可以称其为字符串数组。而Array则是由object对象构成的数组,也可以称其为对象数组,事实上它是对象数组实现的基础,而不是string[]实现的基础,虽然string[]是引用类型,但并非一种继承关系。

如果将string[]转成array,意味首你将每一个string进行打包,然后放入到数组中,事实上我们知道,任何对象均可打包为object的,不管是值类型还是引用类型。

事实上array的出现不是为了对象数组,而是防止我们出现这种情况,一个数组,既不是string[]也不是int[],而是数组由string,也有int,这时我们要使用这种array来实现了。也就是说将每一个string或int均打包成object,事实上array有点象object[]了。至少你可以这么理解。

string[]是存在ToArray()方法的,该方法是lamabda表达式,可以直接使用,或者string[].ToArray<string>();均是可以的,但该方法是出现是.net 3.5以及后续版本。

所有数组是用Array实现的,所以如果你要转换,这样:
string[] s = {"abc","123","ABC"};Array a = new object[s.Length];
s.CopyTo(a, 0);
这样就可以将string数组转换到Array,但Array转换到string不能直接转换,只能显式转换,如下:
string[] ends = new string[a.GetLength(0)];
for(int i = 0;i< a.GetLength(0);i++){
ends[i] = a.GetValue(i).ToString();
}
Array你可以看做一个数组,可是Array[]就相当于object[][]了哦,因为是数组的数组了。

String[]是Array的一个子类实现
Array是全部数组类型的基类

所以无法达到“相互转换”
你可以写一段代码比如Array ary = new String[]{};
因为子类能被基类兼容 但是反过来就不一定了..

  • String[]鍜孉rray鏁扮粍涔嬮棿鍙互鐩镐簰杞崲鍚?鏈変粈涔堝尯鍒拰鑱旂郴鍛?
    绛旓細涓よ呬箣闂寸殑鍖哄埆锛屽湪msdn涓婅锛array鏄疄鐜版暟缁勭殑鍩虹銆傝櫧鐒舵湁杩欎竴鍙ヨ瘽锛屼絾涓嶉潪鏄墍鏈夌殑鍏朵粬鏁扮粍閮戒粠璇ユ暟缁勫熀纭涓婄户鎵跨殑銆備袱鑰呭湪浣跨敤涓婂彲浠ヨ鍩烘湰涓婃槸娌℃湁浠讳綍鍏崇郴鐨勩傞鍏堣string[]锛屽畠琛ㄧず鐢卞瓧绗︿覆鏋勬垚鐨勬暟缁勶紝鍙互绉板叾涓哄瓧绗︿覆鏁扮粍銆傝Array鍒欐槸鐢眔bject瀵硅薄鏋勬垚鐨勬暟缁勶紝涔熷彲浠ョО鍏朵负瀵硅薄鏁扮粍锛屼簨瀹炰笂...
  • array<string>鍚箟
    绛旓細array鏄竴涓暟鎹被鍨嬶紝琛ㄧず涓涓瓧绗︿覆鏁扮粍銆傚湪缂栫▼璇█涓紝array琛ㄧず涓涓敱澶氫釜瀛楃涓茬粍鎴愮殑鏁扮粍锛屽湪浣跨敤璇ユ暟鎹被鍨嬫椂锛屽彲浠ラ氳繃涓嬫爣鏉ヨ闂暟缁勪腑鐨勬瘡涓厓绱狅紝涔熷彲浠ヤ娇鐢ㄥ惊鐜瓑鏂瑰紡瀵规暟缁勮繘琛岄亶鍘嗗拰鎿嶄綔銆
  • ArraryList,Array string[]鐨勫樊鍒槸浠涔?
    绛旓細銆愮瓟妗堛戯細Array 鐨勫閲忔槸鍥哄畾鐨勶紝鑰 ArrayList 鎴 List 鐨勫閲忓彲鏍规嵁闇瑕佽嚜鍔ㄦ墿鍏呫傚鏋滄洿鏀 浜 Capacity 灞炴х殑鍊硷紝鍒欏彲浠ヨ嚜鍔ㄨ繘琛屽唴瀛橀噸鏂板垎閰嶅拰鍏冪礌澶嶅埗銆侫rrayList 鍜 List 鎻愪緵娣诲姞銆佹彃鍏ユ垨绉婚櫎鏌愪竴鑼冨洿鍏冪礌鐨勬柟娉曘傚湪 Array 涓紝鎮ㄥ彧鑳戒竴娆 鑾峰彇鎴栬缃竴涓厓绱犵殑鍊笺備娇鐢 Synchronized 鏂规硶寰堝鏄撳垱...
  • 鍦–#閲,string[]鍜宎rr閮藉彲浠ュ畾涔夋暟缁,鍖哄埆鏄粈涔?
    绛旓細string[]鍙兘瀹氫箟涓哄瓧绗﹀瀷鏁扮粍锛屼篃灏辨槸char绫诲瀷鐨勫瓧绗︿覆~鑰array鍙互鏄换鎰忕被鍨嬪拰浠绘剰缁存暟鐨剘~姣斿澹版槑涓涓簩缁存暣鍨嬫暟缁凙锛歩nt arr_A[][];甯屾湜鑳藉府涓婁綘~
  • javascript涓STRING鍜宎rray瀵硅薄鏈変粈涔堝尯鍒
    绛旓細gamma = new String("杩欐槸涓涓瓧绗︿覆");delta = new String("杩欐槸涔熶竴涓瓧绗︿覆");gamma.test = 10;鍦ㄨ繖绉嶆儏鍐典笅锛屼笉涓 delta 瀹氫箟 test銆傛瘡涓敤 new String 澹版槑鐨 String 瀵硅薄鏈夊叾鑷繁鐨勪竴缁勬垚鍛樸傝繖鏄 String 瀵硅薄鍜屽瓧绗︿覆鏂囧瓧鐨勫鐞嗕笉鍚岀殑鍞竴鎯呭喌銆Array 瀵硅薄 鎻愪緵瀵瑰垱寤轰换浣曟暟鎹被鍨嬬殑...
  • java array鍜宭ist string[]鏈変粈涔堝尯鍒 鍒嗗埆鎬庢牱鍒濆鍖栧憿
    绛旓細String[] 灏辨槸java鐨刟rray锛宎rray鏄畾闀跨殑 鍒涘缓鏃跺氨闇瑕佹寚瀹氶暱搴 涔嬪悗涓嶅彲鏇存敼 缁撴瀯绠鍗 List鍒欐槸鍙橀暱鐨勶紝鍙姩鎬佷几缂 String[] arrays = new String[10]; // 闀垮害10鐨刟rray List<String> list = new ArrayList<String>(); // ArrayList鏄疞ist鐨勪竴涓疄鐜扮被 ...
  • java涓鏁扮粍String array{a,b,c,d,c,d,e}濡備綍鑳芥妸瀛楁鐩稿悓鐨勫垎鍒板彟澶栫殑...
    绛旓細鏁扮粍涓彁鍙栫浉鍚岀殑瀛楁瘝锛屽彲浠ヤ娇鐢╯tring鐨刢harat鏂规硶閬嶅巻瀛楁瘝锛屾斁鍒颁竴涓猻tring涓紝鎵惧埌涔嬪悗鍒犻櫎鎺夎繖涓瓧姣嶏紝鎺ョ潃閬嶅巻涓嬩竴涓紝绀轰緥濡備笅锛歱ackage test1;import java.util.Random;public class ArrayTest {public static void main(String[] args) {//1銆佹瀯寤轰竴涓鏁扮粍String[] array={"a","b","c","d"...
  • 濡備綍鍦╦ava涓娇鐢鏁扮粍
    绛旓細1銆侀鍏堝彲浠ヤ娇鐢String[] s=new String[6]锛屽畾涔変竴涓暱搴︿负6鐨勫瓧绗︿覆鏁扮粍锛屽畾涔変箣鍚庯紝鍙互瀵瑰瓧绗︿覆鏁扮粍杩涜璧嬪硷紝濡備笅鍥炬墍绀恒2銆佷娇鐢╥nt[] i=new int[6]锛屽畾涔変竴涓暱搴︿负6鐨勬暣鍨嬫暟缁勶紝鍏跺畠绫诲瀷绫讳技锛屽涓嬪浘鎵绀恒3銆佷篃鍙互鍦ㄥ畾涔夋暟缁勭殑鏃跺欙紝鐩存帴瀵规暟缁勮繘琛岃祴鍊硷紝浣跨敤String[] str=new String[...
  • android/java璇█鎬庝箞鍙 ArrayList<String[]> 閲岀涓涓厓绱犵殑鍊煎晩?鏀惧湪...
    绛旓細]>褰撳仛鏄疉rrayList<String>鏉ョ湅寰 鐒跺悗锛屽埄鐢ˋrrayList鐨刧et鏂规硶(ArrayList<String[]> al=new ArrayList<String[]>();String[] array=al.get(0);)寰楀埌Arraylist涓殑绗竴涓猄tring[]鏁版嵁,鏈鍚庯紝灏辨槸绠鍗曠殑鍦String鏁扮粍涓彇鍑虹涓涓硷紝鍗筹細 String str=array.get(0);TextView.setText(str);...
  • String [] strArray=str.split("\n")鍚勪綅澶т緺璋佽兘鍛婅瘔鎴戣繖鍙ヨ瘽浠涔...
    绛旓細瀛楃涓瞫tr涓粠绗竴涓瓧绗﹁捣锛屾瘡閬囧埌涓涓猏n鍒欏垏鍓蹭负涓涓厓绱狅紝鏀惧叆strarray鏁扮粍涓紝涔熷氨鏄妸瀛楃涓瞫tr鍒囧壊鍒嗕负涓涓瓧绗︿覆鏁扮粍~
  • 扩展阅读:tkinter stringvar ... stray kids ... stringendo第十二集 ... demons and ghosts ... stranger电影 ... pronounced ... strangely beautiful ... python stringvar ... stranger things ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网