Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用C#但使用Java语法打印ASCII模式?_Java_C#_Multidimensional Array_Ascii Art - Fatal编程技术网

如何用C#但使用Java语法打印ASCII模式?

如何用C#但使用Java语法打印ASCII模式?,java,c#,multidimensional-array,ascii-art,Java,C#,Multidimensional Array,Ascii Art,下面的代码用于模式a,感觉一旦我得到a我就可以得到其他的 我喜欢Java中的array[int].length语法,它有助于获得如图所示的打印模式。但我认为C#中不存在这样的东西 主类{ 公共静态void main(字符串[]args) { char[]arr=新字符[10][10]; int starCount=10; 对于(int i=0;i

下面的代码用于模式a,感觉一旦我得到a我就可以得到其他的

我喜欢Java中的
array[int].length
语法,它有助于获得如图所示的打印模式。但我认为C#中不存在这样的东西

主类{
公共静态void main(字符串[]args)
{
char[]arr=新字符[10][10];
int starCount=10;
对于(int i=0;i
此代码以递减的方式打印
*
,但我正在努力解决如何用
-
字符替换数组中的空元素,如图所示

class类main类{
公共静态void Main(字符串[]args)
{
字符[,]arr=新字符[10,10];
int starCount=10;
对于(int i=0;i
对于原始问题,这里有一种不同的方法,您可能更容易转换

构建一个由10颗星和9条破折号组成的字符串,例如,硬编码为:

String line=“************--------------”;
现在打印包含该字符串子字符串的10行:

for(int i=0;i<10;i++)
System.out.println(行子串(i,i+10));
输出

**********
*********-
********--
*******---
******----
*****-----
****------
***-------
**--------
*---------
如果大小是动态的,基于变量
starCount
中的
int
值,则在Java 11+中可以使用以下方法:

String line=“*”.repeat(starCount)+“-”.repeat(starCount-1);
对于(int i=0;i
用C#做这个应该很容易。请参阅:

在低于11的Java版本中,您可以构建
char[]

char[]行=新字符[2*starCount-1];
数组。填充(行,0,starCount,'*');
数组.填充(行,星数,行.长度'-');
对于(int i=0;i
最简单的方法是查看Array类的C#文档。在这里,您会发现Array类有一个方法,它返回Java数组的
length
属性返回的值

使用该方法,您可以将代码更改为

class类main类{
公共静态void Main(字符串[]args)
{
字符[,]arr=新字符[10,10];
int starCount=10;
for(int i=0;i
您可以使用两个嵌套for循环和一个if-else语句来打印所有这些模式。这是Java代码,但我认为它可以很容易地转换为C:

int n=5;
对于(int i=-n;i)