为什么我不能在数组中放入我需要的所有字符?

问题描述:

我做了一个程序,我需要把所有可能的字符放在一个数组中。 在这里,我创造我的变量只是读名称为什么我不能在数组中放入我需要的所有字符?

print "write your name: " 
name1 = gets.chomp 

然后我试图把所有的字符数组内,例如,如果你的名字是约翰,数组是:J-,乔,荷兰Joh,约翰

arrayNames = [] 
number = name1.length 
number.times {|i| 
    arrayNames[i] = name1.slice(0,i) 
} 
arrayNames << name1 

然后读它,我想使置换计划,我写:

numb = name1.length+ 1 
numb2 = anotherVariable.length + 1 
numb.times {|j| 
    numb2.times {|k| 
     perm = [arrayNames[j],theSecondArray[k]] 
     p perm 
     file1.puts 
    } 
} 
当然

我有文件1发,我已经第二阵列塔完全相同的代码在arrayNames但没有工作。它甚至不显示错误。生病把所有的代码放在一起下面

class Data 
    def initialize 
    end 
    def dataIn 
     print "write your name: " 
     $name = gets.chomp 
     print "write your surname: " 
     $surname = gets.chomp 
    end 
    def dataName 
     $passwordName = [] 
     numb = $name.length 
     numb.times {|i| 
      $passwordName[i] = $name.slice(0,i) 
     $passwordName << $name 
    end 
    def dataSurn 
     $passwordSur = [] 
     numb = $surname.length 
     numb.times {|i| 
      $passwordSur[i] = $surname.slice(0,i) 
     } 
     $passwordSur << $surname 
    end 
    def alg1 
     numb = $name.length + 1 
     numb2 = $surname.length + 1 
     numb.times {|i| 
      numb2.times {|j| 
       perm = [$passwordName[i], $passwordSur[j]].permutation.map {|k| 
       k.join} 
       p perm 
       $archivos.puts perm     
      } 
     } 
    end 
end 

代码本身有点复杂一点,但我的问题是一样的。该方法ALG1犯规work.then我只是给他们打电话,创建文件

data = Data.new() 
datos.dataIn 
$archivos = File.new("passwords",'w+') 
File.open("passwords") 
data.datosName 
data.datosSurn 
data.alg1 
gets() 
+0

您是否在ruby shell中逐行运行命令?你认为在这个过程中arrayNames(或麻木)的价值是什么?此外,slice(0,i)的值的术语是'前缀' –

+0

是的,我做过。切片(0,i)工作时,我把它放在一边,数组名称显示我说过,约翰 – marcos

+0

的例子是最后一部分是什么不工作,第三个 – marcos

我不知道正是你正在尝试做的,但Ruby的内置Array方法会让你的生活变得更轻松:

>> name1 = 'John' 
=> "John" 
>> names = (0...name1.length).map { |i| name1[0..i] } 
=> ["J", "Jo", "Joh", "John"] 
>> other = ['dog', 'wolf', 'sheep'] 
=> ["dog", "wolf", "sheep"] 
>> result = names.product(other) 
=> [["J", "dog"], 
["J", "wolf"], 
["J", "sheep"], 
["Jo", "dog"], 
["Jo", "wolf"], 
["Jo", "sheep"], 
["Joh", "dog"], 
["Joh", "wolf"], 
["Joh", "sheep"], 
["John", "dog"], 
["John", "wolf"], 
["John", "sheep"]] 
+0

完美的工作,我的代码 – marcos