java字符串二维数组
A. java 二维数组和字符串相互转化
package test;
public class ArrayToStringTest {
public static void main(String[] args) {
int[][] array = new int[4][4];
int count = 0;
ArrayToStringTest test = new ArrayToStringTest();
// 赋值一个int[][]
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
array[i][j] = count;
++count;
}
}
// 获取row,col
int row = test.getRow(array);
int col = test.getCol(array);
// 转为String
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,
//转为int[][]
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; // 行
}
return row;
}
public int getCol(int[][] array) {
int col = 0;
if (array != null) {
col = array[0].length; // 列
}
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;
}
}
B. java中如何创建字符串数组
java中定义一个字符串数组方式如下:
1.String[] str={"AAA","BBB","CCC"};
2.String str[]={"AAA","BBB","CCC"};
string类型和其他基本类型相似,创建数组时,有上述两种方式。
数组可以分为一维数组和二维数组;
一维数组的语法格式:
数组元素类型 数组名[ ]={数组元素的初值,。。。}
如: int sa[]={1,2,3}
二维数组声明的语法格式:
数组元素类型 数组名[ ][ ]
如:int a[][]=new int [2[3]
都是一个原理的,自己换一下自己想要定义的数组类型就可以了。
字符串数组的创建:
String a =new String("Java");
不过推荐用ArrayList strArray = new ArrayList (); 比较灵活。
C. java字符串转数组
在Java中,当你需要将一个字符串按照特定模式转换为二维数组时,可以使用正则表达式和Matcher类。下面是一个示例,展示了如何实现这一过程:
首先,定义一个正则表达式Pattern,用于匹配形如"{数字,数字,...}"的子串:
Pattern p = Pattern.compile("\\{(\\d|\\d,)+\\}");
接着,我们有一个字符串s,其内容为"{{1,2,3},{4,5,6},{7,8,9},{0},{0}}":
String s = "{{1,2,3},{4,5,6},{7,8,9},{0},{0}}";
通过Matcher对象m进行逐行匹配:
Matcher m = p.matcher(s);
初始化一个二维数组data:
int[][] data = new int[0][];
使用while循环遍历匹配到的子串:
while (m.find()) {
将数组data扩展,以容纳新的子数组:
data = Arrays.Of(data, data.length + 1);
解析每个子串得到一个整数数组:
String str = m.group();
Pattern p1 = Pattern.compile("\\d");
Matcher m1 = p1.matcher(str);
int[] sub = new int[0];
再次使用while循环解析每个数字:
while (m1.find()) {
sub = Arrays.Of(sub, sub.length + 1);
将匹配到的数字转换为整数并添加到子数组:
sub[sub.length - 1] = Integer.parseInt(m1.group());
}
将解析后的子数组添加到data:
data[data.length - 1] = sub;
}
这样,我们就完成了从字符串到二维数组的转换:
这段代码展示了如何通过正则表达式和Matcher将给定的字符串s分解成一个二维整数数组。
D. java中String[][] 是什么东西string[]又是什么东西
String[][]是二维数组。例如:String[][]str=newString[4][4],这是创建了一个有4行4列元素的数组。
String[]代表一维数组。例如:String[]str=newString[4],这个创建一个有4个元素的数组。
String[]代表格式为String数组;如str[1] str[2]等。String[][]代表多维数组了.[][],可以理解为几行几列。
String是编程语言中的字符串,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。
(4)java字符串二维数组扩展阅读:
String的主要功能:
String 类提供的成员执行以下操作:比较 String 对象;返回 String 对象内字符或字符串的索引;复制 String 对象的值;分隔字符串或组合字符串;修改字符串的值;将数字、日期和时间或枚举值的格式设置为字符串;对字符串进行规范化。
使用 Compare、CompareOrdinal、CompareTo、Equals、EndsWith 和 StartsWith 方法进行比较。
使用 IndexOf、IndexOfAny、LastIndexOf 和 LastIndexOfAny 方法可获取字符串中子字符串或 Unicode 字符的索引。
使用 Copy 和 CopyTo 可将字符串或子字符串复制到另一个字符串或 Char 类型的数组。
使用 Substring 和 Split 方法可通过原始字符串的组成部分创建一个或多个新字符串;使用 Concat 和 Join 方法可通过一个或多个子字符串创建新字符串。
使用 Insert、Replace、Remove、PadLeft、PadRight、Trim、TrimEnd 和 TrimStart 可修改字符串的全部或部分。
使用 ToLower、ToLowerInvariant、ToUpper 和 ToUpperInvariant 方法可更改字符串中 Unicode 字符的大小写。
使用 Length 属性可获取字符串中 Char 对象的数量;使用 Chars 属性可访问字符串中实际的 Char 对象。
使用 IsNormalized 方法可测试某个字符串是否已规范化为特定的范式。使用 Normalize 方法可创建规范化为特定范式的字符串。