我需要从命令行中取出单词,将它们保存到数组中,然后打印出如下的单词:
input: asdf jkl qwerty dfs
output: - jkl qwerty dfs
asdf - qwerty dfs
asdf jkl - qwerty dfs
asdf jkl qwerty -
另外,如果用户只提供2个单词,我应该会得到相同的结果。当所给出的论据数量每次都不同时,我不明白我会怎么做。 以下是我的尝试:
public static void main(String[] args)
{
String input1 = args[0];
String input2 = args[1];
String input3 = args[2];
String input4 = args[3];
String[] input = new String[4];
}
public static void printExceptOne(String[] exception, int x)
{
System.out.print("-");
System.out.print(" "+exception[1]);
System.out.print(" "+exception[2]);
System.out.println(" "+exception[3]);
}
}
答案 0 :(得分:7)
public class Solution {
public static void main(String[] args) {
printExceptOne(args);
}
private static void printExceptOne(String[] args) {
for (int i = 0; i < args.length; i++) {
for (int j = 0; j < args.length; j++) {
String output = j == i ? "-" : args[j];
// adjust spaces however you like
System.out.print(" " + output);
}
System.out.println();
}
}
}
实际测试
输入
asdf jkl qwerty dfs
输出
- jkl qwerty dfs
asdf - qwerty dfs
asdf jkl - dfs
asdf jkl qwerty -
注意:我假设您预期输出的第3行不正确。 你有它
[asdf jkl - qwerty dfs]
答案 1 :(得分:1)
有用的工具:
for(initializer, condition, what to do after each iteration) what to do
if (condition) what to do
what to do
为condition
时才true
。可能的实施:
class Sample
{
public static void main(String[] args)
{
// iterate for each rows
for (int i = 0; i < args.length; i++)
{
// iterate for wach words
for (int j = 0; j < args.length; j++)
{
// print space for second words or later
if (j > 0)
{
System.out.print(" ");
}
// determine what should be printed
String toPrint = args[j];
if (i == j)
{
toPrint = "-";
}
// print it
System.out.print(toPrint);
}
// proceed to next row
System.out.println();
}
}
}
答案 2 :(得分:-1)
您应该使用嵌套循环。循环将遍历值i=
0通过数组中的元素数量,嵌套循环将打印出未在i
索引的所有值。
public static void printExcept(String[] exception) {
for(int i = 0; i < exception.length; i++) {
for(int j = 0; j < exception.length; j++) {
if( j != i ) {
// Print elements that aren't at exception[i]
System.out.print(exception[j]);
} else {
// Don't print elements at exception[i]
System.out.println(" - ");
}
}
// Move to next line
System.out.println();
}
}
您不需要第二个参数(至少从我在您的问题陈述中理解的内容)。
在此处阅读有关循环的更多信息: http://www.tutorialspoint.com/java/java_loop_control.htm